BankAccount ref1 = new BankAccount();
BankAccount ref2 = ref1;
1. 개체가 생성 되었을 때 자기 자신을 뜻함
2. this생성자
TV myTV = new TV("LG", 2017, 32);
myTV.show();
//LG 에서 만든 2017년형 32인치 TV
class TV{
String brand; // datamember
int year;
int inch;
TV(String brand, int year, int inch){ // 생성자
this.brand = brand;
this.year = year;
this.inch = inch;
}
void show() {
System.out.println(brand + "에서 만든" + year + "년형" + inch + "인치 TV");
}
}
public class Java_02 {
public static void main(String[] args) {
//LG 에서 만든 2017년형 32인치 TV
TV myTV = new TV("LG", 2017, 32);
myTV.show();
}
}
노래 한 곡을 나타내는 Song 클래스를 작성하라. Song은 다음 필드로 구성된다.
또한 Song 클래스에 다음 생성자와 메소드를 작성하라.
1978년 스웨덴국적의 ABBA가 부른 Dancing Queen
class SONG{
int year;
String title;
String artist;
String country;
SONG(int year, String country, String artist, String title){
this.year = year;
this.country = country;
this.artist = artist;
this.title = title;
}
void song2() {
System.out.println(year + "년 " + country + "국적의 " + artist + "가 부른 " + title);
}
}
public class Java_02 {
public static void main(String[] args) {
SONG sing = new SONG(1978, "스웨덴", "ABBA", "Dancing Queen");
sing.song2();
}
}
클래스 내부에서 사용할 변수나 메서드를 private로 선언해서 외부에서 접근하지 못하도록 하는 것을 객체지향에서 '정보은닉(information hiding)'이라 한다.
캡슐화
접근 제어자
:객체 지향 프로그램에서는 예약어를 사용해 클래스 내부의 변수나 메서드, 생성자에 대한 접근 권한을 지정할 수 있다. 이러한 예약어를 '접근 제어자(access modifier)'라고 한다.
public : 외부 클래스 어디에서나 접근이 가능
protected : 같은 패키지 내부와 상속 관계의 클래스에서만 접근 할 수 있다. 그 외 클래스에서는 접근이 불가능
private : 같은 클래스 내부에서만 접근할 수 있다.
default :디폴트값이며 같은 패키지 내부에서 접근할 수 있다.
: 로컬변수는 기본적으로 중괄호 안에만 살아있어서 뭘 붙이든 의미 없다.