
자바에서는 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화할 수 있는 생성자(constructor)라는 메소드를 제공합니다.
자바에서 생성자(constructor)의 이름은 해당 클래스의 이름과 같아야 합니다.
즉, Car 클래스의 생성자의 이름은 Car가 됩니다.
이러한 생성자는 다음과 같은 특징을 가집니다.
출처 : https://www.tcpschool.com/java/java_methodConstructor_constructor
기본 생성자는 매개변수를 하나도 가지지 않으며, 아무런 명령어도 포함하고 있지 않습니다.
자바 컴파일러는 컴파일 시 클래스에 생성자가 하나도 정의되어 있지 않으면, 자동으로 다음과 같은 기본 생성자를 추가합니다.
클래스이름() {}
출처 : https://www.tcpschool.com/java/java_methodConstructor_constructor
- 생성자는 인스턴스의 변수를 초기화 하는데 사용되는 특수한 메서드
- 생성자에서 다른 생성자 호출하기
- 주소값이 없는 것( 아무것도 가리키고 있지 않다는 것)
- 개발자들이 사용하는 용도
- JVM으로 하여금 이 객체를 사용하지 않는다는 것을 알려 줌
- JVM한테 해당 메모리 정리해도 좋다 라는 싸인을 주는 거임
- 클래스의 이름 규칙
- 클래스 이름의 첫 문자는 대문자로 시작한다.
- 둘 이상의 단어가 묶여서 하나의 이름을 이룰 때, 새로 시작하는 단어는 대문자로 한다.
- ex)
Circle + Point = CirclePoint
- 메소드와 변수의 이름 규칙
- 메소드 및 변수 이름의 첫 문자는 소문자로 시작한다.
- 둘 이상의 단어가 묶여서 하나의 이름을 이룰 때, 새로 시작하는 단어는 대문자로 한다.
- ex)
Add + Your + Money = addYourMoney
Your + Age = yourAge
- 상수의 이름 규칙
- 상수의 이름은 모든 문자를 대문자로 구성한다.
- 둘 이상의 단어가 묶여서 하나의 이름을 이룰 때 단어 사이를 언더바로 연결한다.
- ex)
final int COLOR_RAINBOW = 7;
비슷한 성격의 클래스들을 모아 놓은 자바의 디렉터리(폴더/그룹)
public static void main(String[] args) {
TV myTV = new TV("LG", 2017, 32); //LG에서 만든 2017년 32인치
myTV.show();
}
✅ 클래스 구현
class TV{
String brand;
int year;
int inch;
TV(String brand,int year,int inch) {
this.brand = brand;
this.year = year;
this.inch = inch;
}
void show() {
System.out.println(brand+ "에서 만든 " + year + "년 " + inch + "인치");
}
}
int math =90;
int science = 80;
int english = 70;
Grade me = new Grade(math, science, english);
System.out.println("평균은 "+me.average()); // average()는 평균을 계산하여 리턴
✅클래스 구현
class Grade{
int math;
int science;
int english;
Grade(int math, int science, int english){
this.math = math;
this.science = science;
this.english = english;
}
double average() {
return (math+science+english)/3.0;
}
}
노래의 제목을 나타내는 title
가수를 나타내는 artist
노래가 발표된 연도를 나타내는 year
국적을 나타내는 country
또한 Song 클래스에 다음 생성자와 메소드를 작성하라.
생성자 2개: 기본 생성자와 매개변수로 모든 필드를 초기화하는 생성자
노래 정보를 출력하는 show() 메소드
main() 메소드에서는 1978년, 스웨덴 국적의 ABBA가 부른 "Dancing Queen"을 song 객체로 생성하고 show()를 이용하여 노래의 정보를 다음과 같이 출력하라.
1978년 스웨덴국적의 ABBA가 부른 Dancing Queen
✅ 클래스 구현
class Song {
String title,artist,country;
int year;
Song(String title,String artist,int year,String country) {
this.title = title;
this.artist =artist;
this.country = country;
this.year = year;
}
void show() {
System.out.println(year +"년 "+ country +" 국적의 " + artist + "가 부른 " + title);
}
}