아무튼 개발
반응형
  • private

private int r;
책에서 주로 '정보의 은닉화'라고 부른다. public과 정반대인 의미
외부에서 다이렉트로 변수에 접근을 못하도록

-> 메소드를 통해 일명 우회도로를 만듦
public void set(int r)
// set 혹은 setData 가능
//앞에 public을 해줘야 연결 가능. 값 바꿀 수 있도록

  • this

private int r;
public void set(int r)
r = r; //이라고 하면 오류! r이 다 똑같이 인식되므로
--> this.r = r; //해줘야 함.
this는 클래스 자기 자신을 지칭함. 변수가 같아서 혼란일 때 활용(주로 우회도로 시 사용)

  • static

'new'를 사용하지 않아도 자동으로 메모리 할당된다.
객체가 1000개여도 메모리 공간은 1개만 생성.

public static int a = 5; public static void print()
=> class변수 => class메소드
로딩되는 즉시 메모리 할당 ('new'필요x)
[클래스이름.객체] 통해 접근

private int b = 10; public void write()
=> instance변수 =>instance메소드
'new'를 통해 메모리 할당 받아야 함
클래스 메소드에서는 접근 불가능 (=호출 가능)

클래스 변수 혹은 클래스 메소드는 그 자체로 실행이 되지만 앞에 클래스이름 붙여주기
a -> 클래스명.a
print(); -> 클래스명.print();

  • 메소드 중복 정의 overloading (overload)

같은 클래스 상에서 비슷한 역할인 메소드들이 이름을 통일시켜줌
-> 대신 괄호의 인수 갯수 혹은 특히 자료형을 다르게 입력하면 다른 메소드로 인식함

public void print()
public void print(int a)
public void print(double l)
다 같은 print메소드여도 다름!

public RectA(int w, int h) {
this.w = w;
this.h = h;
}
--> 클래스 내에서 오버로딩 생성

  • 생성자

목적: 1. 객체 생성 2.변수 초기화
메모리 할당을 받을 때 사용을 하며 class의 이름과 같다
리턴값이 없으므로 property(void, int~타입) 필요가 없다
중복정의(overloading) 가능하며
생성자 안에서 다른 생성자 호출할 수 있지만, 메소드 내 선두에서만 가능

public 클래스명() { //항상 생략되어있는 것

public static void main(String[] args) {
RectA oj1 = new RectA(); //기본생성자 호출
oj1.set(10,20); //초기화
==> 오버로딩은 위와 달리 한번에 초기화 같이 가능
RectA oj2 = new RectA(50,60); //오버로딩

  • 상수

변수와 반대되는 개념
final int D;
--> 항상 대문자. 만드는 순간 초기화해줘야 함







반응형
profile

아무튼 개발

@릴쥬

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...