devdw
bloom_
devdw
전체 방문자
오늘
어제
  • 분류 전체보기 (20)
    • develop (15)
      • 개발기록 (0)
      • Java (5)
      • C++ (4)
      • Spring (0)
      • Database (3)
      • Algorithm (1)
      • etc (2)
    • diary (3)
      • 일기 (0)
      • 🍕🍔🍟 (1)
      • Review (2)
    • works (1)
      • reviews (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 알고리즘
  • float
  • 스테들러노리스디지털펜
  • 다이소
  • SourceCode
  • class
  • 스테들러
  • STAEDTLER NORIS DIGITAL S PAN
  • github
  • lesson1
  • 조심또조심
  • database
  • iteration
  • AI
  • xor
  • 신경망 교과서
  • GIST
  • 순간접착제
  • 변수
  • Share
  • array
  • Codility
  • 난수생성
  • 펜그립
  • 코딩테스트
  • 신경망
  • 길벗
  • java
  • 머신러닝
  • PYTHON

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
devdw

bloom_

develop/Java

[Java] 클래스/객체/메서드

2021. 8. 21. 16:30

객체지향언어의 특징

  • 코드의 재사용성이 높음
    • 새 코드 작성 시 기존 코드를 이용하여 쉽게 작성할 수 있음
  • 코드의 관리가 용이함
    • 코드간 관계를 이용하여 적은 노력으로 쉽게 코드 변경이 가능
  • 신뢰성 높은 프로그래밍 가능
    • 제어자와 메서드를 이용하여 데이터를 보호하고 올바른 값을 유지하도록함
    • 코드의 중복을 제거하여 코드 불일치로 인한 오동작을 방지함

클래스와 객체

클래스

객체를 정의하여 객체 생성 시 사용 → 틀

객체

정의한 클래스로 만든 속성과 기능의 집합 → 실체

  • 속성 : 멤버 변수 (상태, 값)
  • 기능 : 메서드 (동작)

인스턴스

클래스로부터 만들어진 객체

변수

  • 클래스 변수
    : 멤버변수 중 static이 붙은 변수
    • 클래스 영역에 선언
    • 클래스가 메모리에 올라갈 때 생성
    • 모든 인스턴스가 공통된 값을 유지해야하는 속성인 경우 사용
    • 인스턴스를 생성하지 않고도 사용 가능
    • 초기화 블럭
      : 클래스변수의 복잡한 초기화에 사용
      class Example {
        static { } // 초기화블럭
      }
  • 인스턴스 변수
    : 멤버변수 중 static이 붙지 않은 변수
    • 클래스 영역에 선언
    • 인스턴스 생성될 때 생성
    • 인스턴스마다 고유한 상태를 유지해야하는 속성인 경우 사용
    • 초기화 블럭
      : 인스턴스 변수의 복잡한 초기화에 사용
      ```java
      class Example {
      { } // 초기화블럭
      }
  • 지역변수
    : 멤버변수를 제외한 나머지 변수들
    • 클래스 영역 이외의 영역에 선언 (메서드, 생성자, 초기화 블럭 내부)
    • 변수 선언문이 수행되었을 때 생성
    • 사용하기 전 반드시 초기화를 해주어야 함
class Test {
  int iv; // 인스턴스 변수
  static int cv; // 클래스 변수(static 변수, 공유 변수)

  void method() {
    int lv = 0; // 지역 변수
  }
}

생성자

인스턴스 초기화 메서드

  • 클래스 내에 선언됨
  • 리턴 값이 없음
  • 하나의 클래스에 여러 개의 생성자가 존재할 수 있음
  • 생성자 이름은 클래스의 이름과 같아야 함
  • 클래스에는 반드시 하나 이상의 생성자가 정의되어있어야 함
기본 생성자 (default constructor)
  • 매개변수가 없는 생성자
  • 클래스 정의 시 생성자를 만들지 않으면 자동으로 추가해 컴파일함
    class Card {
    Card() { //default constructor
    }
    }
    매개변수가 있는 생성자
  • 생성자 호출 시 값을 넘겨받아 인스턴스를 초기화할 수 있는 생성자
    class Card {
    int v1;
    Card(int v1) {
      v1 = v1;
    }
    }
    생성자에서 다른 생성자 호출하기
  • 생성자 이름 대신 this로 호출해야함
  • 반드시 생성자의 첫 줄에서만 호출 가능

메서드

특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것

특징

  • 높은 재사용성
    : 한 번 만들어 놓은 함수는 여러 번 사용 가능
  • 중복된 코드 제거
  • 프로그램 구조화메서드 종류
  • 클래스 메서드 (static method)
    • 인스턴스 생성하지 않고 사용 가능
    • 인스턴스와 관계없는 (인스턴스 변수를 사용하지 않는) 메서드
  • 인스턴스 메서드
    • 인스턴스 생성 후 사용 가능
    • 인스턴스 변수와 관련된 작업하는 메서드 (인스턴스 변수를 사용)

'develop > Java' 카테고리의 다른 글

Math.random() 난수 생성하기  (0) 2021.09.03
[Java] 배열  (0) 2021.08.21
[Java] 변수  (0) 2021.08.21
[Python] 소수점 아래 자리 수 원하는 만큼 출력  (0) 2021.08.10
    'develop/Java' 카테고리의 다른 글
    • Math.random() 난수 생성하기
    • [Java] 배열
    • [Java] 변수
    • [Python] 소수점 아래 자리 수 원하는 만큼 출력
    devdw
    devdw
    끄적끄적

    티스토리툴바