인스턴스, this, 접근제한자, 겟터 셋터

2019. 3. 8. 19:09JAVA

=======================인스턴스 멤버와 this===========================


인스턴스란 

객체를 말하며 오브젝트라고도 한다.


인스턴스 멤버란

필드를 말하며 인스턴스 변수(멤버), 프로퍼티, 멤버변수, 객체변수라 한다.





public class Account {

int no; //계좌 번호

String owner; //예금주



-> void deposit(int amount, int no) {

인스턴스 메소드    (매개변수)

멤버 메소드

int result = bal + amount;

    (지역변수)



----------------this--------------------------


this란

객체 자기자신의 주소값을 가지고 있는것.


public class Book {

int no;

String title;

String writer;

int price;


Book(){

}


Book(int no, String title, String writer, int price){

this.no=no;

this.title=title;

this.writer=writer;

this.price=price;

(Book 객체의 필드값을 불름)

}



--------------접근 제한자----------------------


접근 제한자란

클래스의 구성요소중 필드의 요소를 외부에 보여줄것인지 감출것인지 제어하는것 (캡슐화)


 (공개)

   |  public ---- 공개(모두에게) 클래스, 메소드, 생성자는 무조건 public

   |  protected ---- ?

   |  default ---- 같은 패키지(폴더) 내에서 공개 (아무것도 지정안하면 default상태다.)

   v  private ---- 비공개 필드는 항상 private로 한다.

(비공개)





위의 글처럼 아래로 내려올수목 비공개성이며 필드, 생성자, 메소드, 클래스에 붙여 사용할 수 있다.


public class Subject {

int no; // 과목번호

String name; // 과목명

String professor; // 담당교수명


Subject(){

}

}


======================================================


public class Subject {

int no; // 과목번호

String name; // 과목명

String professor; // 담당교수명


private Subject(){

}

}



이렇게 바뀔경우 private로 바뀌어 일반적으로 컴파일 할 경우 에러가 나온다.

그래서 생성자와 메소드는 경우 대부분 public을 하여 공개하며, 필드는 private로 비공개를 하는게 기본적이다.

|

|

예시)---------------------------------------- v

public class Subject {

private int no; // 과목번호

private String name; // 과목명

private String professor; // 담당교수명


public Subject(){

}


public Subject(int no, String name, String professor){

this.no = no;

this.name = name;

this.professor = professor;

}





---------------------Getter와 Setter 메소드-------------------------------



Getter, Setter란

클래스 안의 필드값을 읽거나 불러올때 사용하는 메소드는 Getter, Setter메소드라 한다.




값을 저장/운반할 때 사용하는 이런 객체를 밑에와 같이 부른다.

Value Object

Java Beans(자바 빈즈)

Domain Object(도메인 객체)


형식---------------

  |

public class 클래스명 {

필드;

필드;


Getter / Setter 메소드


}

-------------------


Setter - 필드의 값을 외부에서 변경할때

Getter - 필드의 값을 외부에서 불러올때





public int getNo(){ // no의 값을 불러주는 getter메소드

return no;

}


public String getName(){  // name의 값을 불러주는 getter메소드

return name;

}



----------------------------------------------------------------


public void setNo(int no){ // no의 값을 변경하는 setter 메소드

this.no = no;

}


public void setName(String name){  // name의 값을 변경하는 setter 메소드

this.name = name;

}







기능을 제공하는 객체는 아래와 같이 부른다.

Service Object

BusinessLogic Object


형식---------------

  |

public class 클래스명Service {

필드


업무로직 메소드() {...}

업무로직 메소드() {...}

...

}

---------------------



'JAVA' 카테고리의 다른 글

상속, extends, 오버라이딩, 재정의, 타입형변환  (0) 2019.03.08
static, final, 패키지,  (0) 2019.03.08
메소드 오버로딩, 생성자  (0) 2019.03.08
메소드, 리턴값, void,  (0) 2019.03.08
클래스, 객체 필드  (0) 2019.02.26