- 설계도
- 데이터 + 함수(구조체 + 함수)
- 변수(데이터 하나) < 배열(같은 데이터 여러개) < 구조체(여러 데이터 여러개) < 클래스(구조체 + 메소드)
- 사용자 정의 타입
- 원하는 타입을 직접 만든다.
- 연관된 것들끼리 강하게 묶을 수 있음
- 유지보수 up
static
이 붙은 iv변수-> 👀 이 변수들은 선언만 가능하다 ??
-> 객체는 iv(인스턴스 변수)의 묶음이라고 이해하라.
class Card {
String kind; //무늬
int number; //숫자
static int width = 100; //폭
static int height = 250; //높이
}
public class Main {
public static void main(String[] args) {
Card c = new Card(); //객체 생성
c.kind = "heart";
c.number = 5;
Card.width = 200; //cv를 사용할 땐 클래스명!
Card.height = 250;
}
}
객체명.변수명 = 대입할것;
c.kind = "heart"; c.number = 5;
클래스명.변수명 = 대입할것;
Card.width = 200; Card.height = 250;
package ch06.c1;
class Card {
String kind;
int number;
static int width = 100;
static int height = 250;
}
public class Ex6_3 {
public static void main(String[] args) {
// 카드
System.out.println("Card.width = "+Card.width);
System.out.println("Card.width = "+Card.height);
//***** cv는 객체 생성 없이도 바로 사용할 수 있다!!!
Card c1 = new Card();
c1.kind = "heart";
c1.number = 7;
Card c2 = new Card();
c2.kind = "spade";
c2.number = 4;
System.out.println("c1은 "+c1.kind+", "+c1.number+"이고, 크기는 "+Card.width+", "+Card.height+"입니다.");
System.out.println("c2는 "+c2.kind+", "+c2.number+"이고, 크기는 "+Card.width+", "+Card.height+"입니다.");
System.out.println("c1의 width와 height를 각각 50, 80으로 변경합니다.");
Card.width = 50; //cv 이렇게 사용!!
Card.width = 80;
System.out.println("c1은 "+c1.kind+", "+c1.number+"이고, 크기는 "+Card.width+", "+Card.height+"입니다.");
System.out.println("c2는 "+c2.kind+", "+c2.number+"이고, 크기는 "+Card.width+", "+Card.height+"입니다.");
}
}
Card.width = 100
Card.width = 250
c1은 heart, 7이고, 크기는 100, 250입니다.
c2는 spade, 4이고, 크기는 100, 250입니다.
c1의 width와 height를 각각 50, 80으로 변경합니다.
c1은 heart, 7이고, 크기는 80, 250입니다.
c2는 spade, 4이고, 크기는 80, 250입니다.