✔ 클래스 정의하는 방법
- 객체 만드는 방법 (new 키워드 이해하기)
✔ 메소드 정의하는 방법
✔ 생성자 정의하는 방법
✔ this 키워드 이해하기
(접근제어자) class 클래스 이름 { 멤버변수; 메서드; }
package home; public class Person { int personId; private String personName; int age; }
해당 클래스 안에서 | 같은 패키지에서 | 상속받은 클래스에서 | 전체 | |
---|---|---|---|---|
public | O | O | O | O |
protected | O | O | O | X |
default | O | O | X | X |
private | O | X | X | X |
클래스 자료형 변수를 선언하고 new 예약어로 생성자를 호출하여 대입하면 새로운 클래스가 생성된다.
클래스형 변수 이름 = new 생성자; Person personkim = new Person(); //Person 클래스 자료형으로 personKim 변수를 선언하고 //new Person();으로 Person 클래스를 생성하여 personKim에 대입한다는 뜻
**여러 상태의 클래스가 동시에 필요할 때는 클래스 앞에 new를 붙여 클래스의 복제본을 만들어서
서로 다른 상태를 유지할 수 있다. 이 복제본을 인스턴스라고 한다.
**힙 메모리란
힙(heap)은 프로그램에서 사용하는 동적 메모리 공간을 말한다.
일반적으로 프로그램은 스택, 힙, 데이터 세 영역을 사용하는데, 객체가 생성될 때 사용하는 공간이 힙이다.
함수
함수 정의하기
int add(int num1, int num2) { int result; result = num1+num2; return result;
자바에는 클래스 내부에서 사용하는 멤버 함수를 '메서드'라 하며 멤버 변수를 사용하여 클래스의 기능을 구현한다. 즉 함수에 객체 지향 개념이 포함된 용어로 이해할 수 있다.
public class Person { int personId; private String personName; int age; //사람 이름을 반환하는 메서드 public String getPersonName() { return personName; //사람 이름을 부여하는 메서드 public void setPersonName(String personName) { this.personName = personName; } }
private으로 선언한 personName 변수를 외부 코드에서 사용하기 위해서는 public 메서드가 필요하지만 제공될 수 없다면 get(), set() 메서드를 사용할 수 있다.
public class Student { String name; int age; int grade; public Student(){} //자바 컴파일러가 기본적으로 제공하는 디폴트 생성자 }
public class Student { String name; int age; int grade; public Student(String pname){ name = pname; } //사람 이름을 매개변수로 입력받아서 Student클래스를 생성하는 생성자 }
자신의 메모리를 가리키는 this
생성자에서 다른 생성자를 호출하는 this
자신의 주소를 반환하는 this
-this를 사용하여 생성된 클래스 자신의 주소 값을 반환할 수 있다.