Full-Stack 개발자가 되려는 작은 개발자의 블로그
객체 지향 실습3 본문
생성자(Constructor)
- 인스턴스가 생성 될 때 마다 호출되는 '인스턴스 초기화 메소드'
- 인스턴스가 변수의 초기화 또는 인스턴스 생성 시 수행해야 할 작업을 작성
- 몇 가지 조건을 제외하고는 메소드와 같다.
- 모든 클래스에는 반드시 하나 이상의 생성자가 있어야한다.
조건
1. 생성자의 이름은 클래스의 이름과 같아야 한다.
2. return이 없다.
class 클래스명{
//생성자
클래스명(매개변수목록){...}
}
this 란?
- 인스턴스 자신의 주소를 저장하는 내부 필드
- 인스턴스 생성 시 자동으로 만들어져 주소를 저장함.
- 여러 인스턴스가 존재 할 경우 각 인스턴스의 필드를 구별하기 위해 사용
- 매개 변수와 필드(멤버)변수의 구분을 위해 사용
this 사용
1. 매개변수(지역변수)와 멤버변수(필드)를 같은 이름으로 사용 할 경우 멤버변수애 this.을 붙인다.
2. 같은 클래스의 생성자에서 다른 생성자를 호출 할 대 다른 생성자는 this(파라미터)로 호출한다.
멤버의 종류
1. 클래스 멤버(static 멤버)
- 변수나 메소드 앞에 static 키워드가 붙는 멤버
- 인스턴스를 생성하지 않아도(new를 하지 않아도)사용 할 수 있다.
- 다른 클래스에서 사용 할 경우
▶ 클래스이름.변수 = 값;
▶ 클래스이름.메소드();
▶ 변수 = 값;
▶ 메소드();
2.인스턴스 멤버
- 변수나 메소드앞에 static 키워드가 붙지 않는 멤버
package test0317;
class Card{
public static int width = 100;
public static int height = 250;
public String kind;
public int number;
}
public class CardTest {
//운영체제(시스템)가 호출한다. -콜백 메소드
public static void main(String[] args) {
//static 멤버는 인스턴스 생성 전 클래스이름으로 접근 가능
Card.width=100;
Card.height=350;
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+" X "+Card.height+"이다");
System.out.println("c2은 "+c2.kind+"모양이고 번호는 "+c2.number+" 이며, "
+ "크기는 "+Card.width+" X "+Card.height+"이다");
}
}
Card.height=300;
Card.width=50;
System.out.println("c1은 "+c1.kind+"모양이고 번호는 "+c1.number+" 이며, "
+ "크기는 "+Card.width+" X "+Card.height+"이다");
System.out.println("c2은 "+c2.kind+"모양이고 번호는 "+c2.number+" 이며, "
+ "크기는 "+Card.width+" X "+Card.height+"이다");
'강의 정리 > Java' 카테고리의 다른 글
물품 관리 프로그램(Homeminus) (1) | 2020.04.01 |
---|---|
가계부 프로그램 (0) | 2020.03.26 |
객체 지향 실습1 (0) | 2020.03.16 |
Java 기초를 이용한 로또 프로그램/야구 게임 (0) | 2020.03.15 |
Java를 이용한 학생 관리 프로그램/가계부 프로그램 (0) | 2020.03.11 |