본문 바로가기

개발/이론

[JAVA] 클래스





*클래스 편*







추상화: 중요한 정보만 클래스로 표현하는 것


선언: 보통 한 소스 파일마다 하나의 클래스를 선언하지만, 그 이상을 선언하기도 함

/ 둘 이상이라면 하나만 public, 

  그 클래스 이름은 파일이름과 동일해야함(메인 클래스를 나타내주는 개념)


-> , 접근지정자 붙은 클래스명을 파일명으로 해야함



 

Ball.java

public class Ball(){...} 

...                                  ->  컴파일  -> Ball.class / Cylinder.class 생성

class Cylinder{...}





 


같은 패키지라면 접근지정자가 없을 시 가져다가 사용 가능


파일명: PhoneDemo.java

객체명: myPhone, yourPhone

-> 각 객체의 메서드에 접근할때에는 . 사용

 

필드 model, value 는 캡슐화 되지 않았기 때문에 PhoneDemo 라는 클래스에서 사용이 가능한 것

(같은 패키지 내라면 사용 가능, 캡슐화 하려면 private 필수)

 

 

 

 







 

지역변수



클래스  에서의 멤버 접근: this 사용 없이 바로 필드 or 메서드 이름으로 사용 

/  this(이 클래스의) . 필드 or 메서드 이름

클래스  에서의 멤버 접근: 사용하려는 외부 객체 이름 . 필드 or 메서드 

이름

 

 

 

 

 


 

+ 생성자



** 생성자: 객체를 생성하는 시점에서 필드를 다양하게 초기화


: 반환타입이 없으며(생성자는 변수 초기화만 해주고 따로 반환하지 않기 때문에 

애초에 void 와 같은 반환타입 조차 선언할 필요가 없는 것)

: (대신 다른 클래스에서 이 객체를 사용할 수 있도록) 앞에 public 선언

: 클래스 이름과 동일한 이름

 

기본 생성자: 매개변수가 없으며,클래스 내에 생성자는 최소 하나는 존재해야하나, 생성자는 선언하지 않았을 경우 컴파일러가 기본 생성자 자동 추가

 

** 생성자 오버로딩 : 생성자 이름(클래스 이름)은 동일하게 사용하고 시그니처를 다르게



책. 쉽게 배우는 자바 프로그래밍