지역변수 = 함수 내부에서만 사용하는 변수.
지역변수는 스택 메모리에 생성됨.
ex) 학생의 이름을 반환하는 메소드 getStudetName()
왜 get이냐? 클래스로부터 값을 get해서 함수에서 반환할거거든
학생의 이름을 부여하는 메소드 setStudentName()
왜 set이냐? 이 함수에서 매개변수를 새로 셋팅해서 전달할거거든
Student클래스를 사용하는 다른 코드에서 학생 이름을 새로 지정하거나 바꾸어 쓸 때.
클래스와 인스턴스
: main() 함수는 JVM(자바 가상머신)이 프로그램을 시작하기 위해 호출하는 함수. 클래스 내부에 만들지만 클래스의 메소드는 아님.
new 예약어로 클래스 생성하기
: 클래스를 사용하려면 클래스를 생성해야 함.
클래스가 생성된다는 것은 클래스를 실제로 사용할 수 있도록 메모리 공간(힙 메모리)을 할당받는다는 뜻.
인스턴스 = 이렇게 실제로 사용할 수 있도록 생성된 클래스.
참조변수 = 인스턴스를 가리키는 클래스형 변수, 메모리에 생성된 인스턴스를 가리키는 변수. (ex) Student)
클래스 생성 코드 : 클래스형변수 변수이름 = new 생성자;
ex) Student studentAhn = new Student();
인스턴스 : 클래스는 하나지만 여러 개의 각각 다른 인스턴스를 생성할 수 있음.
인스턴스와 힙 메모리 : 클래스 생성자를 하나 호출하면 인스턴스가 힙 메모리에 생성됨. 지역변수는 스택 메모리에 생성되고, 참조변수는 힙 메모리에 생성된 인스턴스임.
Q2. 클래스 만들고 결과값 출력하기
나이가 40살, 이름이 James라는 남자가 있습니다. 이 남자는 결혼을 했고, 자식이 셋 있습니다.
<출력결과>
이 사람의 나이
이 사람의 이름
이 사람의 결혼 여부
이 사람의 자녀수
public class Person {
int age;
String name;
boolean isMarried;
int numberOfKid;
public static void main(String[] args) {
Person person = new Person();
person.age = 40;
person.name = "Jennie";
person.isMarried = false;
person.numberOfKid = 3;
System.out.pringln("나이 : " + person.age);
System.out.pringln("이름 : " + person.name);
System.out.pringln("결혼여부 : " + person.isMarried);
System.out.pringln("자녀수 : " + person.numberOfKid);
}
}
생성자 오버로드부터 To be Continued...