ID_DI
DI's study notes
ID_DI
전체 방문자
오늘
어제
  • 분류 전체보기 (85)
    • Deep-Learning (3)
      • CNN (2)
      • NLP (1)
    • Data_Python (6)
      • Numpy (0)
      • Matplotlib (4)
    • Python (8)
      • Python Algorithm (6)
    • Java (36)
      • Java(base) (33)
      • Java practice(base) (2)
    • Git (12)
    • Algorithm (7)
    • etc (7)
    • linux (1)
    • DeskSetup (0)
    • TIL_모각코 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 정렬
  • Github
  • java.net
  • Python
  • git add.
  • java base
  • java.lang
  • 자바
  • git
  • 합병정렬
  • string to int
  • 파이썬
  • staged
  • java
  • README.md
  • 알고리즘
  • matplotlib
  • 커밋
  • binarySearch
  • java 기초

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ID_DI

DI's study notes

[Java] 클래스의 개념, 선언, 사용, 생성자, this
Java/Java(base)

[Java] 클래스의 개념, 선언, 사용, 생성자, this

2021. 11. 29. 15:48

클래스(반)

  • 공통적인 요소들을 추상적으로 묶어놓은 틀
  • 여러 변수들과 메소드들을 둘다 관리 및 사용하기 위해 사용

객체지향의 반대는 절차지향이다.

  1. 주어이다.

    • 모든 문장 맨앞에 클래스가 나온다.
    • 영어는 맨 앞을 항상 대문자로 적는다.
    • 따라서 클래스는 주어이고, 대문자로 시작한다.

    Monkey.eat(food) 주어 동사 목적어

  2. 타입이다.

    • 클래스는 추상적인 개념이고, 이 클래스 안에는 필드가 존재한다. (필드: 클래스 내부)
    • 추상적인 것을 바로 사용할 수 없기 때문에 그 필드들을 구체화 시킨 대상이 필요하다.
      • 구체화시킨 대상 : 객체
      • instance variable 이라고 부른다.
        • instance: 예시 -> 추상적인 개념의 한 예시로써 객체가 나오기 떄문에 instance varible 이라고 부른다.
    • String str; String 클래스의 객체의 타입이었음

클래서 선언

  • 다른 클래스 외부에서 선언한다.
class 클래스명{
    필드(변수 선언, 메소드 선언)
    실행문금지 X
}

클래스의 사용

  • 클래스는 추상적인 틀이기 때문에 먼저 객체화를 진행한다.
클래스명 객체명 = new 클래스명();
객체.변수
객체.메소드()
  • 하나의 저장공간에는 단 한개의 값만 담을 수 있다.
  • 필드에는 여러개의 값이 존재하기 때문에 필드는 다른곳(Heap)에 할당되고, 할당된 필드의 주소값을 저장하는 것이 객체이다.

생성자

  • 클래스 명 뒤에 소괄호
  • 생성자는 메소드와 똑같은 기능을 가지고 있다.
  • return 을 할 수 없기 때문에 메소드라고 부르지 않는다.(만들어진 필드의 주소값을 이미 내부적으로 리턴하고 있다고 생각하면 이해하기 편함)

클래스명 객체명 = new 클래스명();

  • 클래스 선언시 자동적으로 생성자가 만들어지고 코드상에 나타나지 않는다.
  • 이러한 생성자를 기본생성자라고 한다.
  • 만약 직접 생성자를 선언하게 되면, 기존에 있던 기본 생성자는 사라지게 된다.

생성자의 목적

  1. 객체화의 목적: 클래스의 필드를 똑같이 복사해서 메모리에 할당해 주고 할당된 필드의 주소값을 가져온다. 이 주소값을 객체에 넣어두고 사용한다.
  2. 초기화의 목적: 생성자는 호출시 내부의 내용을 모두 수행한다.

this

객체 구별용 변수

  • 클래스 선언 시 내부적으로 선언되어 생성된다.
  • 클래스 필드에서 하나의 메소드로 여러 객체들을 다루어야한다.
  • 메소드 내부에서 필드를 사용하고자 할 떄 어떤 객체의 필드인지 구별할 수 있도록 사용

class 객체 = this

this.필드명

지역변수가 존재하지 않을 때는 생략 가능

'Java > Java(base)' 카테고리의 다른 글

[Java] 다형성 Polymorphism : Overloading(오버로딩), Overriding(오버라이딩)  (0) 2021.11.29
[Java] 상속(inheritance), 자식클래스 생성자, super()  (0) 2021.11.29
[Java] storage class(저장 기억 부류) : 변수 종류 //지역변수 전역변수 정적 변수  (0) 2021.11.29
[Java] 메소드 Method  (0) 2021.11.29
[Java] 배열(1차원 배열, 2차원 배열)  (0) 2021.11.29
    'Java/Java(base)' 카테고리의 다른 글
    • [Java] 다형성 Polymorphism : Overloading(오버로딩), Overriding(오버라이딩)
    • [Java] 상속(inheritance), 자식클래스 생성자, super()
    • [Java] storage class(저장 기억 부류) : 변수 종류 //지역변수 전역변수 정적 변수
    • [Java] 메소드 Method
    ID_DI
    ID_DI
    Computer Vision

    티스토리툴바