public class Person{
int age;
String name;
char sex;
int personHeight;
int personWeight; //멤버 변수 : 객체 내 명사적 역할
Person(){} //생성자 메소드: 초기화 역할
public void printInfo(){
System.out.println(name + "님은 " + age + "살 입니다.");
}
public void printBodyInfo(){
System.out.println(name + "님의 " + "몸무게는 " + personWeight + "kg, 키는 " + personHeight + "cm 입니다.");
} //일반 메소드 : 객체 내 동사적 역할
}
- 클래스의 구성
- 멤버 변수
- 객체의 명사적 기능, 객체 내에 사용되는 변수, 객체 속성
- 객체에 유일하게 저장되는 요소, 생성자 메소드와 일반 메소드는 저장되지 않는다.
- 생성자 메소드
- 멤버 변수의 초기화 역할
- 클래스로부터 객체(인스턴스) 생성할 때 호출된다.
- 일반 메소드
- 객체의 동사적 기능, 멤버 변수를 이용한 함수의 기능
- 객체가 제공하는 기능적 요소
public class PersonTest {
public static void main(String[] args) {
Person personLee = new Person(); //인스턴스 생성
personLee.name = "이길동";
personLee.age = 25; //멤버변수 설정
personLee.printInfo(); //일반 메소드 호출
Person personKim = new Person(); //인스턴스 생성
personKim.name = "김장군";
personKim.age = 55; //멤버변수 설정
personKim.printInfo(); //일반 메소드 호출
System.out.println(personLee);
System.out.println(personKim);
// 인스턴스를 출력하면 해당 메모리 주소가 나온다.
}
}
Person(){} //기본 생성자 메소드, 아무 매개변수를 가지고 있지 않다.
int num1; //선언만 했다.
System.out.println(num1); //초기화가 필요하다고 오류가 뜬다.
int num2=15; //선언과 초기화를 동시에 한 경우
System.out.println(num2); //15 잘 나온다.
public class Person{
int age;
String name; //멤버 변수 선언
public Person(int age, String name){ //매개변수 age, name 포함
this.age = age;
this.name = name;
//매개변수 age, name이 this.age, this.name으로 멤버 변수를 가리키고 있다.
}
}
public class PersonTest{
public static void main(String[] args) {
//Person personLee = new Person();
//personLee.age=22;
//personLee.name="이길동";
//기본 생성자 메소드로 초기화된 것
Person personLee = new Person(22, "이길동");
//매개변수를 이용한 생성자
}
public class Person{
int age;
String name;
public Person(){} //기본 생성자
public Person(String name){
this.name = name; //이름 매개변수만 있는 생성자
}
public Person(int age, String name){
this.age = age;
this.name = name; //나이와 이름 매개변수가 있는 생성자
}
public void printInfo() {
System.out.println( "이름:" + name + "나이: " + age);
}
}
public class PersonTest{
public static void main(String[] args) {
Person personLee1 = new Person();
//기본 생성자로 생성
Person personLee2 = new Person("이길동");
//이름 매개변수만 있는 생성자로 생성
Person personLee3 = new Person(22, "이길동");
//나이, 이름 매개변수가 있는 생성자로 생성
personLee1.printInfo(); //이름: null 나이: 0
personLee2.printInfo(); //이름: 이길동 나이: 0
personLee3.printInfo(); //이름: 이길동 나이: 22
}
}
Reference: