본문 바로가기

언어/JAVA

[JAVA] 클래스(객체)

클래스란

  • JAVA의 기본 단위이며 자료형의 일종이다.

특징

  • JAVA에서 이미 수많은 클래스들을 미리 만들어 놓았지만, 개발자가 새로 정의할 수 있다.
    • ex) Random, Scanner...
  • 클래스명 작성 시 첫 글자는 대문자이다.
  • new 연산자를 써야한다.
    • 힙(heap) 메모리를 사용한다.
  • 객체지향언어
    • 누가 함수를 호출했느냐에 따라 결과가 달라진다.
    • 함수에게 주체가 생기는 언어이다.
      • 일반적인 함수는 주체가 없고 메서드(멤버함수)는 주체가 있다.
  • 같은 메서드인데 다른 결과가 나오는 것을 다형성이라한다.

"누가 함수를 호출했느냐에 따라 결과가 달라진다"

  • 같은 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 + 클래스명
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);

    }

}

'언어 > JAVA' 카테고리의 다른 글

[JAVA] 생성자  (0) 2023.11.29
[JAVA] 힙(heap) 메모리  (0) 2023.11.29
[JAVA] 모듈화  (0) 2023.11.28
[JAVA] 함수  (0) 2023.11.28
[JAVA] scanner  (0) 2023.11.28