2019. 3. 8. 19:09ㆍJAVA
=======================인스턴스 멤버와 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 |