클래스란
특징
- JAVA에서 이미 수많은 클래스들을 미리 만들어 놓았지만, 개발자가 새로 정의할 수 있다.
- 클래스명 작성 시 첫 글자는 대문자이다.
- new 연산자를 써야한다.
- 객체지향언어
- 누가 함수를 호출했느냐에 따라 결과가 달라진다.
- 함수에게 주체가 생기는 언어이다.
- 일반적인 함수는 주체가 없고 메서드(멤버함수)는 주체가 있다.
- 같은 메서드인데 다른 결과가 나오는 것을 다형성이라한다.
"누가 함수를 호출했느냐에 따라 결과가 달라진다"
- 같은 Dog라는 클래스이지만 다른 객체 변수(dog1, dog2)에 다른 값을 넣기 때문에 결과가 달라진다.
// 강아지 객체1 호출
Dog dog1 = new Dog();
dog1.name = "노노";
dog1.kind = "골든리트리버";
dog1.dogInfo();
// 강아지 객체2 호출
Dog dog2 = new Dog();
dog2.name = "누누";
dog2.kind = "보더콜리";
dog2.dogInfo();
클래스 선언 예제
class Student
{
}
클래스 호출 예제
- 클래스(객체) 클래스 타입의 변수 = new 생성자(멤버함수)
- 개발자가 만든 자료형 Student 클래스 타입의 변수 student 객체를 new 연산자를 사용해서 힙 메모리에 생성한다.
- 클래스 타입의 변수 = 인스턴스(instance) != 오브젝트(object)
Student student = new Student();
클래스 구성
멤버변수 = 필드 = 속성 = 어트리뷰트(attribute) = 프로퍼티(property)
class Student
{
// 멤버변수 1 이름
String name;
// 멤버변수 2 나이
int age;
// 멤버변수 3 점수
int score;
}
멤버함수 = 메서드
- 클랙스(객체)에 포함되는 함수에는 static이 붙지 않는다.
- 객체와 무관하지 않기 때문이다.
- 일반 함수는 객체와 무관하기 때문에 static이 붙는다.
class Student
{
//멤버변수
String name;
int age;
int score;
// 메서드
void printInfo()
{
System.out.println(name);
System.out.println(age);
System.out.println(score);
}
}