클래스 : 객체를 정의해 놓은 것 , 객체를 생성하는데 사용된다.
인스턴스화 : 클래스로부터 객체를 만드는 과정
인스턴스 : 클래스로부터 만들어진 객체를 클래스의 인스턴스라고 함.
인스턴스의 생성과 사용
Tv t;
t = new Tv();
1. Tv t;
Tv클래스 타입의 참조변수 t를 선언한다. 메모리에 참조변수 t를 위한 공간이 마련된다.
2. t = new Tv();
연산자 new에 의해 Tv클래스의 인스턴스가 메모리의 빈 공간에 생성된다.
대입 연산자에 의해 생성된 객체의 주소값이 참조변수 t에 저장된다. - 참조변수 t를 통해 Tv인스턴스에 접근할 수 있으며 인스턴스를 다루기 위해서는 참조변수가 필요하다.
객체배열
Tv[] tvArr = new Tv[3];
tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv();
Tv[] tvarr = new Tv[3];
과 같이 객체 배열을 생성하는 것은 객체를 다루기 위한 참조변수들이 만들어진 것일뿐 객체가 저장된 것은 아니다.
객체를 생성해서 객체 배열의 각 요소에 저장하는 것을 잊으면 안된다.
클래스의 프로그래밍적 정의
변수 -> 하나의 데이터를 저장할 수 있는 공간
배열 -> 같은 종류의 데이터를 하나의 집합으로 저장할 수 있는 공간
구조체 -> 서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장할 수 있는 공간
클래스 -> 데이터와 함수의 결합(구조체 + 함수)
변수
class Var {
int ivl //인스턴스 변수
static int ev; // 클래스 변수 static 공유변수
void method() {
int lv=0; //지역변수
인스턴스 변수 -> 인스턴스마다 고유한 상태를 유지해야하는 경우에 쓰임
클래스변수 -> 인스턴스 변수 앞에 static 붙이면 된다. 모든 인스턴스들이 공유함. public을 붙이면 프로그램 어디에서나 접근가능
지역변수 -> 메서드 내에 선언되어 메서드 내에서만 사용 가능하다.
클래스 변수는 클래스에 해당되는 변수이기 때문에 c1.width의 값을 50으로 바꾸어주면 클래스 변수의 값이 50으로 변환되어 c2.width를 출력하면 50이 출력된다.
이는 Card.width , c1.width , c2.width가 같은 공간을 참조하기 때문이다.
System.out.println(Card.height);
Card c1 = new Card();
c1.kind = "HEART";
Card c2 = new Card();
c2.kind = "DIA";
c1.width = 50;
System.out.println(c2.width);
메서드
장점
높은 재사용성
중복된 코드의 제거
프로그램의 구조화
메서드의 선언부
메서드의이름 , 매개변수 선언 , 반환타입으로 구성
int add(int x,int y) {
int result = x+y;
return result;
}
메서드의 호출
메서드이름(값1,값2)
인자 = 메서드를 호출할 때 괄호()안에 지정해준 값
매개변수 = 메서드 선언시 지정된 변수들
'IT 관련 > JAVA' 카테고리의 다른 글
자바 객체지향언어I (재귀, 클래스메서드와 인스턴스메서드, 메서드 오버로딩) (0) | 2022.06.22 |
---|---|
자바 객체지향언어I (JVM메모리 , 기본형 참조형 매개변수) (0) | 2022.06.17 |
자바 배열(array) (0) | 2022.06.11 |
자바 조건문(if while 등) (0) | 2022.06.06 |
자바 연산자 (0) | 2022.06.03 |