개체와 객체는 다른 것이다.
메소드
class Exam {
private int kor;
private int eng;
public void print() {
System.out.println(kor+eng);
}
public static void printStatic() {
System.out.println("this is static");
}
}
public class App {
public static void main(String[] args) {
Exam exam = new Exam();
exam.print();
Exam.printStatic();
}
}
exam.print()로 메소드를 호출하게 되면 exam이라는 객체가 print로 넘어가게 되는 것
이를 인스턴스를 통해 호출되는 함수라고 함.
print() 함수 내부에는 넘어온 객체를 사용할 수 있는 것이고, 이때 this
를 통해
exam 객체 내부의 구성요소에 접근할 수 있는 것이다.
-> this
라는 이름으로 참조하고 있는 것
참고) exam.print()를 하게 되면 0 이 나오는데, 기본적으로 힙에 올라간 애들은 초기화가 된다.
캡슐: 데이터와 함수를 묶어 놓은 단위
캡슐화: 데이터와 함수를 하나로 묶는 작업
-> 고립화를 위해, 캡슐 밖의 변화에 영향을 받지 않기 위해 캡슐화 함
int id;
String name;
→ 무슨 데이터지???
class Student {
int id;
String name;
}
→ 학생에 대한 정보구나!!
사용자가 생각하는 데이터 형식이 보인다
이를 사용자 형식이라고 할 수 있다.
case1.
name1 = “kim”
name2 = “han”
case2.
Student stu1 = new Student();
stu1.name= “kim”
Student stu2 = new Student();
stu2.name = “han”
구조체: 데이터를 묶기 위한 도구
캡슐: 함수를 묶어 놓기 위한 도구