본문 바로가기
내일배움캠프/내일배움캠프

[내일배움캠프] 2024. 09. 09. TIL

by TIP__ 2024. 9. 9.

안녕하세요.

2024. 09. 09. 월요일 TIL입니다.

오늘은 계속 이어서 java 문법 강의 3주차 강의를 복습했습니다.

그래도 계속 듣다보니 이제는 어느정도 들리는 것 같습니다.

데일리 루틴 코드카타

오늘은 음양더하기 라는 문제를 풀었습니다.

https://tip-blog-welcome.tistory.com/entry/%EB%82%B4%EC%9D%BC%EB%B0%B0%EC%9B%80%EC%BA%A0%ED%94%84-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-Daily-Routine-26-%EC%9D%8C%EC%96%91-%EB%8D%94%ED%95%98%EA%B8%B0

 

[내일배움캠프] 알고리즘 Daily Routine 26. 음양 더하기

안녕하세요. 26회차 과제 "음양 더하기"입니다.문제 설명어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs

tip-blog-welcome.tistory.com

오늘 배운 것

인스턴스 멤버와 클래스 맴버

멤버 = 필드 + 메서드
-. 인스턴스 멤버 = 인스턴스 필드 + 인스턴스 메서드
-. 클래스 멤버 = 클래스 필드 + 클래스 메서드

* 인스턴스 멤버
인스턴스 맴버는 객체를 생성해야 사용할 수 있음

* 클래스 멤버
java의 클래스 로더에 의해 메서드 영역에 저장되고 사용됨
-. 이 때 클레스 맴버는 메서드 영역의 클래스와 같은 위치에 고정적으로 위치하고 있는 멤버를 의미
-. 따라서 클래스 멤버는 객체의 생성 없이 바로 사용이 가능

* 지역변수
메서드 내부에서 선언한 변수
-. 메서드 내부에서 정의될 때 생성되어 메서드가 종료될 때 까지만 유지

* 상수
final을 붙여 최종 값으로 지정하여 수정할 수 없음
final은 반드시 초기값을 지정해주어야 한다.
-. 상수는 대문자로 작성하는 것이 관례



생성자

* 생성자 선언과 호출
piblic Car() {} // 생성자 선언 (기본 생성자)
Car car = new Car(); //호출

* 필드 초기화
객체를 만들 때 인스턴스마다 다른 값을 가져야 한다면 생성자를 통해 필드를 초기화
-. 반대로 인스턴스마다 같은 값을 가지는 필드는 초기값을 대입

* 생성자 오버로딩
생성자를 통해 필드를 초기화할 때 오버로딩을 적용할 수 있음.



this와 this()

* this
this는 인스턴스 자신을 표현하는 키워드
매개변수와 필드명이 동일할 경우 자신에게 값을 대입하는 상황이 발생하므로 this 키워드를 사용
ex) model = model; > this.model = model

* this()
this()는 인스턴스 자신의 생성자를 호출하는 키워드
-. this() 키워드로 다른 생성자 호출 시 반드시 생성자의 첫 줄에 작성되어야 함

 


접근 제어자

* 접근제어자
멤버 또는 클래스에 사용하여 외부에서 접근하지 못하도록 혹은 접근하도록 제한
클래스 : public, default
메서드 & 멤버 변수 : public, protacted, default, private
지역변수 : 없음
접근제어자를 이용한 캡슐화(은닉성)

*Getter 와 Setter
객체의 무결성 즉, 변경이 없는 상태를 유지하기 위해 접근 제어자를 사용
직접적인 값의 조회나 세팅을 방지하기 위해 사용

 

packag와 import 이해하기

* package
패키지란 클래스의 일부분이면서 클래스를 식별해 주는 용도
상위 패키지와 하뒤 패키지를 도트(.)로 구분

* import
import는 다른 패키지에 있는 클래스를 사용하기 위해 명시하는 키워드



상속

클래스 간의 관계와 상속

* 상속
클래스 간의 상속은 extends 키워드를 사용
public class 자식클래스 extends 부모클래스 {}
부모클래스에서 받아서 확장하는 자식클래스

* 클래스 간의 관계
클래스간의 관계를 분석하여 관계 설정이 가능
-. 상속관계 : is - a (~는 ~다.)
-. 포함 관계 : has - a (~는 ~를 가지고 있다.)

* 단일 상속과 다중 상속
java는 다중 상속을 허용하지 않는다.

* final 클래스와 final 메서드
finall키워드를 지정하면 최종 클래스가 되므로 더 이상 상속할 수 없다.

* Object
Object 클래스는 java 내 모든 클래스들의 최상위 부모 클래스이므로 모든 클래스에서 사용 가능



오버라이딩

부모 클래스로부터 상속받은 메서드의 내용을 재정의 하는 것을 오버라이딩이라고 한다.
-. 선언부가 부모 클래스의 메서드와 일치해야 한다.
-. 접근 제어자를 부모 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
-. 예외는 무보 클래스의 메서드보다 많이 선언할 수 없다.

* super와 super()
super는 부모 클래스의 멤버를 참조할 수 있는 키워드
super()는 부모 클래스의 생성자를 호출할 수 있는 키워드

내일도 오늘보다는 조금 더 나은 내가 되도록 노력하겠습니다.

댓글