본문 바로가기

CS/OOP

객체지향 프로그래밍 - Object, Class

728x90

 classname name = new classname()

 

-> new 연산자는 클래스의 생성자를 call, name은 포인터로 classname으로 만들어진 객체를 가리킨다.

새로운 object가 생성된다.

 

각 자바 클래스당 메인은 한개 Main는 실행 클래스 아닌 다른 클래스는 모두 라이브러리 클래스로 불린다.

 

Member in Class

- 변수

- 메소드(function)

- 생성자(Constructor)

 

Local variable , public variable

- 지역변수 : 오브젝트 종속 변수

- 필드 : 오브젝트(클래스)에 선언되어있는 변수

 

Overloading

- 오버로딩은 같은 이름의 메소드인데 다른 파라미터를 받을 수 있는 방법이다. 이는 생성자, 메소드 모두 가능하다. 이는 다형성이라 불린다. 오버라이딩과 비교해야하는데, 오버라이딩은 상속관계에서 발생하는 개념이다.

 

 

Object Array and Object Creation

ex)

day[] days = new day[]; ==>> 이는 주소만을 할당한 것이지 아직 생성한 것이 아님

days[i] = new Day() ==>> 이것이 주소에 정말로 객체를 생성한 것!

 

잘못된 초기화 

=> int a;

Day[] days = new Day[a] // a가 뭔지 모르기 때문에 초기화 할 수 없다.

 

Member Type

- Instance Member : 객체 안에 소속되어있음. 

- static : 클래스 자체의 속성. 클래스의 전역변수 같은 공통변수

 

접근법(캡슐화, 정보은닉과 관련)

- getter, setter : 사용이 가장 일반적 

- public : 모두 접근 가능

- private : 내부 메소드를 사용해야함

- protected : 부모만 접근가능

 

Singlenton Pattern

- 객체를 한 번 생성하면 어디서든 참조가 가능한 디자인 기법

- 생성자를 private로 지정하고 인스턴스를 반환하는 static 매서드를 만듦

 

ex) 한 개밖에 없는 공공 프린터기. 이걸 맘대로 자기 자리에 가져가게 두면 안된다.