클래스 : 객체의 설계도 또는 틀이라고 정의함.
- 정의 : 클래스란 객체를 정의해놓은 것이다.
- 용도 : 클래스는 객체를 생성하는데 사용된다.
객체의 정의 : 실제로 존재하는 것. 사물 또는 개념
객체의
인스턴스 (객체와 유사) : 특정 클래스로부터 생성된 객체
package chap06;
class Tv {
String color;
boolean power;
int channel;
void power() {power != power;}
void channelUp() {++channel;}
void channelDown() {--channel;}
}
public class TvTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Tv t1 = new Tv();
Tv t2 = new Tv();
t1.channel = 7;
t1.channelDown();
System.out.println("현재 채널은 "+ t1.channel + " 입니다.");
System.out.println("현재 채널은 "+ t2.channel + " 입니다.");
t2 =t1;
System.out.println("현재 채널은 "+ t2.channel + " 입니다.");
}
}
이 자체로 설명이 어느정도 될듯 싶다.
Tv라는 클래스에 속성 + 기능 ( 속성은 color, power, channel이고 기능은 power, channelup, channeldown 등이 있음.)
t1이라는 참조 변수는 Tv 객체를 가르키고 있 고,
t1,t2가 생겼다가,
나중에는 t2리모컨이 t1리모컨이 되면서, 같은 방향을 가르키고 있어서,
결과는 6 0 6이 된다.
위처럼 하나의 인스턴스를 여러개의 참조변수가 가르키는 경우는 가능한데
여러개의 인스턴스가 하나의 참조변수를 가르킬 수는 없다.
객체 배열 == 참조변수 배열
-> 생각해보면 String[],int[]에는 익숙한데 Tv[]는 익숙하지 않다.
단순 기본 변수인지, 참조변수인지 차의지 결국 int나 string도 설계도에 지나지 않다!!1
결국 배열 자체도 숫자를 담아내느냐, string을 담아내느냐, 참조변수를 담아내느냐 차이다!
Tv tv1, tv2, tv3; <-> Tv[] tvArr = new Tv[3];
클래스의 또다른 정의
1) 설계도
2) 데이터 + 함수
3) 사용자 정의 타입
데이터 + 함수
1. 변수 : 하나의 데이터를 저장할 수 있 는 공간
2. 배열 : 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간
3. 구조체 : 서로 관련된 여러 데이터를 하나로 저장할 수 있는 공간
4. 클래스 : 데이터와 함수의 결함 (구조체+ 함수)
사용자 정의 타입
원하는 타입을 직접 만들 수 있다.
int hour;
int minute;
int second;
// 3개이상 가거나, 이를 효율적으로 하기 위해 배열을 해도 문제다.
Time t = new Time();
class Time{
int hour;
int minute;
int second;
}
//3개의 변수를 하나로 묶어낼 수가 있다.
'Develope_Web&App > 01_Java & JavaFX' 카테고리의 다른 글
[Java의 정석] 객체지향 2- 1상속 (0) | 2021.02.03 |
---|---|
[Java의 정석] 객체지향 1-1 (0) | 2021.02.03 |
[java] string 변환시키기 (0) | 2021.01.27 |
[java] 예외처리 (0) | 2021.01.27 |
[Java] Chap04 조건문과 반복문 (0) | 2021.01.27 |