
객체= 속성(변수) + 기능(메서드)
속성 = 크기, 길이, 높이, 색상, 볼륨, 채널 등
기능 = 켜기, 끄기, 볼륨 높이기, 볼륨낮추기 등..

객체: 모든 인스턴스를 대표하는 일반적 용어
인스턴스 : 특정 클래스로부터 생성된 객체(예 TV인스턴스)




Tv t1= new Tv();
Tv t2 = new Tv();
t1.channel=7;
만약 t2=t1이라고 가정하면


1. 하나의 인스턴스를 여러 개의 참조변수가 가리키는 경우(가능)
2. 여러 인스턴스를 하나의 참조변수가 가리키는 경우(불가능)
class Tv {
// Tv의 속성(멤버변수)
String color; // 색상
boolean power; // 전원상태(on/off)
int channel; // 채널
// Tv의 기능(메서드)
void power() { power = !power; } // TV를 켜거나 끄는 기능을 하는 메서드
void channelUp() { ++channel; } // TV의 채널을 높이는 기능을 하는 메서드
void channelDown() { --channel; } // TV의 채널을 낮추는 기능을 하는 메서드
}
class TvTest {
public static void main(String args[]) {
Tv t; // Tv인스턴스를 참조하기 위한 변수 t를 선언
t = new Tv(); // Tv인스턴스를 생성한다.
t.channel = 7; // Tv인스턴스의 멤버변수 channel의 값을 7로 한다.
t.channelDown(); // Tv인스턴스의 메서드 channelDown()을 호출한다.
System.out.println("현재 채널은 " + t.channel + " 입니다.");
}
}
클래스
시간
int hour;
int minute; => Time t = new Time();
int secoond
int hour1, hour2, hour3; Time t1 = new Time();
int minute1, minute2, minute3; => Time t2 = new Time();
int secoond1, secoond2, secoond3 Time t3 = new Time();
//시간끼리 묶인다는 문제가 있음 Time[] t = new Time[3];
int[] hour = new int[3]; t[0] = new Time();
int[] minute = new minute[3]; => t[1] = new Time();
int[] second = new second[3]; t[2] = new Time();
그래서 사용자 정의타입인
class Time{
int hour;
int minute;
int secoond ;
}
클래스를 사용함으로써 코드가 덜 복잡해지고 유지보수 하기가 더 쉬워짐


class Time{
int hour; //iv
int minute; //iv
int second; // iv
객체를 생성해야 iv 사용가능
반대로 객체란? iv를 묶어 놓은것 이라고 할 수 있다.
}

3장의 카드가 있다.
속성에는 무늬, 숫자, 폭, 높이가 있는데 모든 카드의 폭과 높이는 공통된 값을 가져야하고 무늬와 숫자는 다른 값을 가져야 한다.
class Card{
String kind; // 무늬
int number; // 숫자
인스턴스 변수 ( 개별속성) iv
static int width = 100; // 폭
static int height = 250; // 높이
클래스 변수(공통 속성) cv
}
class Card{
String kind; // 무늬
int number; // 숫자
인스턴스 변수 ( 개별속성) iv
static int width = 100; // 폭
static int height = 250; // 높이
클래스 변수(공통 속성) cv
public static void main(String[] args){
Card c = new Card();
c.kind = "HEART";
c.number = 5;
Card.width = 200;
Card.height = 300;
//cv 클래스 변수는 클래스 이름을 사용해야한다.
// cv는 객체생성없이 바로 사용 할 수 있다.
}
}
개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.