참조변수 배열 == 객체 배열
Tv t1 = new Tv();
Tv t2 = new Tv();
Tv t3 = new Tv();
Tv[] tvArr = new Tv[3];
tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv();
-> Product p[] = new Product[3]; //객체배열 생성
Product p1 = new Tv(); -> p[0] = new Tv();
Product p2 = new Computer(); -> p[1] = new Computer();
Product p3 = new Audio(); -> p[2] = new Audio();
//다른 방법
Product[] p = { new Tv(), new Computer(), new Audio() };
//기본 배열 만들기
---------------------------------------
//방법 1
int[] array = new int[3];
array[0] = 1;
array[1] = 2;
array[2] = 3;
//방법 2 (선언과 동시에 배열의 크기 지정 및 값 초기화)
int[] array1 = new int[] {1,2,3};
//방법 3 (선언과 동시에 배열의 크기 지정 및 값 초기화)
int[] array2 = {1,2,3};
//방법 4 (선언 후 기본변수에 값 초기화)int는 기본변수 Product는 참조변수
int[] array3;
array3 = {1,2,3}; // 에러
array3 = new int[]{1,2,3};
class Card
{
String kind; //인스턴스 변수
int number;
static int width = 100; //클래스변수(static변수, 공유변수)
static int height = 250;
void method()
{
int lv = 0; //지역변수
}
}
Card c = new Card();
c.kind = "HEART";
Card.width = 200;
기본형 매개변수 - 변수의 값을 읽기만 할 수 있다.
참조형 매개변수 - 변수의 값을 읽고 변경할 수 있다.
static 메서드
객체생성없이 사용 가능
클래스이름.메서드이름() 호출
언제 static을 붙이나? : (iv)인스턴스 변수를 사용하지 않을 때
instance 메서드
인스턴스 생성 후 사용 가능
참조변수.메서드이름() 호출
instance메서드를 만들려면 인스턴스 변수를 사용하고 싶을 때
static 변수
공통으로 사용 될 때 (공통 속성)
instance 변수
개별으로 사용 될 때 (개별 속성)
한 클래스 안에 같은 이름의 메서드 여러 개 정의하는 것
normal --------> 메서드 : 메서드 이름 = 1 : 1
overloading ---> 메서드 : 메서드 이름 = n : 1
메서드 이름이 똑같아야 한다.
매개변수의 개수 또는 타입이 달라야 한다.
( 반환 타입은 영향없다. )
long add(int a, long b) { return a+b; }
long add(long b, int a) { return a+b; }
단 이 경우 메서드를 부를 때 add(3,3L) 이렇게 불러야 불러진다.
그냥 숫자들만 넣을 시 뭘 불러야 될지 몰라서 오류가 남
매개변수는 다르지만 같은 의미의 기능을 수행 하는것이 올바른 사용 예시다.
클래스 이름과 같다.
리턴값이 없다. void 안붙인다. (iv초기화는 대입문)
Car c = new Car("white", "auto", 4);
Car c --> 참조변수 c 생성
new ---> 객체 생성
Car("white", "auto", 4) ---> 생성자 호출
오버로딩을 통해 여러개 만들어서 this를 통해 서로 호출 (코드 중복제거)
this("white","auto",4);
자동초기화 --> 0
간단초기화 --> =
복잡초기화 --> cv static{}, iv 생성자