** 핵심 개념 캡상추다.
1) 캡슐화
2) 상속
3) 추상화
4) 다형성
클래스-설계도/ 객체-제품 tv/ 속성-변수, 기능-메서드
Q. 클래스가 왜 필요한가?
A. 객체를 생성하기 위해
Q. 객체가 왜 필요한가?
A. 객체를 사용하기 위해
Q. 객체를 사용한다는 것은?
A. 객체가 가진 속성과 기능을 사용하려고
public class가 있는 경우, 소스파일의 이름은 반드시 public class의 이름과 일치해야함.
ex.
Hello2.java
public class Hello2 {}
class Hello3 {}
public class가 없는 경우, 소스파일의 이름은 둘다 가능.
ex.
Hello2.java // Hello3.java // 둘다 가능.
class Hello2 {}
class Hello3 {}
2) 잘못된 작성 예
하나의 소스파일에 둘 이상의 public class가 존재하면 안됨. --> 각 클래스를 별도의 소스파일에 나눠서 저장하던가, 둘 중의 한 클래스에 public 빼기
ex.
Hello2.java
public class Hello2 {}
public class Hello3 {}
소스파일의 이름이 public class의 이름과 일치해야함. 대소문자까지 일치해야 함.--> 소스파일 이름을 'Hello2.java'로 변경
ex.
Hello3.java
public class Hello2 {}
class Hello3 {}
hello2.java
public class Hello2 {}
객체의 생성과 사용
1) 객체의 생성
클래스명 변수명; //클래스의 객체를 참조하기 위한 참조변수를 선언
변수명 = new 클래스명(); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
Tv t; // Tv클래스 타입의 참조변수 t를 선언
t = new Tv(); // Tv인스턴스를 생성한 후, 생성된 Tv인스턴스의 주소를 t에 저장
2) 객체의 사용
t.channel1 = 7; // Tv인스턴스의 멤버변수 channel의 값을 7로한다.
t.channelDown(); // Tv인스턴스의 메서드 channelDown()을 호출.
System.out.println("현재 채널은 "+t.channel+ " 입니다.");
ex.
Tv tv1, tv2, tv3; -->
Tv[] tvArr = new Tv[3]; // 길이가 3인 Tv타입의 참조변수 배열 생성
tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv(); // 객체를 생성해서 배열의 각 요소에 저장
--> 간단하게 초기화 블럭 사용
Tv[] tvArr = { new Tv(), new Tv(), new Tv()};
--> 객체수가 많을 때는 for문 사용
Tv[] tvArr = new Tv[100];
for (int i=0; i<tvArr.length; i++) {
tvArr[i] = new Tv();
}