JAVA - 05

월요일좋아·2022년 9월 21일
0

JAVA

목록 보기
5/12

클래스와 객체

  • 클래스

    • 객체의 속성(멤버변수)와 행위(메서드) 선언
    • 객체의 설계도 혹은 틀
  • 객체

    • 클래스의 틀로 찍어낸 실체
      • 프로그램 실행 중에 생성되는 실체
      • 메모리 공간을 갖는 구체적인 실체
      • 인스턴스(instance)라고도 부름

클래스 선언과 컴파일

  • 소스파일 생성 : 클래스이름.java (대소문자 주의)
  • 소스 작성 public class 클래스이름{} --- 컴파일(javac.exe) ---> 클래스이름.class
  • 소스 파일당 하나의 클래스를 선언하는 것이 관례
    • 두 개 이상의 클래스도 선언 가능
    • 소스파일 이름과 동일한 클래스만 public으로 ㅅ너언 가능
    • 선언한 개수만큼 바이트 코드 파일이 생성

new 연산자

  • 객체 생성 역할 new 클래스()
  • 클래스()는 생성자를 호출하는 코드
  • 생성된 객체는 힙 메모리 영역에 생성
  • new 연산자는 객체를 생성 후, 객체 생성 번지 리턴

클래스 변수

  • new 연산자에 의해 리턴 된 객체의 번지 저장 (참조 타입 변수)
  • 힙 영역의 객체를 사용하기 위해 사용
  • 클래스 변수 = new 클래스()
    ex) Car car = new Car();

클래스의 용도

  • 라이브러리(API) 용
    • 자체적으로 실행되지 않음
    • 다른 클래스에서 이용할 목적으로 만든 클래스
  • 실행용
    • main() 메소드를 가지고 있는 클래스로 실행할 목적으로 만든 클래스
    • 1개의 애플리케이션 = (1개의 실행클래스) + (n개의 라이브러리 클래스)

클래스의 구성 멤버

  • 필드 : 객체의 데이터가 저장되는곳 (변수)
    • 클래스 멤버 변수
    • int fieldNAme;

  • 생성자 : 객체 생성시(자동실행) 초기화 역할 담당
    • ClassName() { ... }

  • 메소드 : 객체의 동작에 해당하는 실행 블록(함수)
    • 혼자 동작하는것 = 함수, 클래스에 포함되어있는것 = 메소드
    • 클래스 멤버 메소드
    • void methodName() { ... }

필드의 내용

  • 객체의 고유 데이터
    • 제작회사 String company;
    • 모델 String model;
    • 색깔 String color;
    • 최고속도 int maxSpeed;
  • 객체가 가져야 할 부품 객체
    • 현재속도 int speed;
    • 엔진회전수 int rpm;
  • 객체의 현재 상태 데이터
    • 차체 Body body;
    • 엔진 Engine engine;
    • 타이어 Tire tire;

필드 선언

이제까지 변수 선언과 동일함, 멤버변수의 사용 -> 메소드 안에서만 사용

  • 타입 필드 [ = 초기값 ];
    • String company = "현대자동차";
    • String model = "그랜저";

필드의 기본 초기값

  • 초기값 지정되지 않은 필드
    • 객체 생성시 자동으로 기본값으로 초기화
    • char : \u0000 (빈 공백)
    • int : 0
    • float : 0.0F
    • boolean : false
    • (참조타입) - 배열, 클래스, 인터페이스 : null

필드 사용

  • 필드 값을 읽고, 변경하는 작업을 말한다
  • 필드 사용 위치
    • 객체 내부 : "필드이름" 으로 바로 접근
    • 객체 외부 : "변수.필드이름" 으로 접근

생성자

  • new 연산자에 의해 호출되어 객체의 초기화 담당 (멤버변수의 초기화)
  • new 클래스();
  • 필드의 값 설정
  • 메소드 호출해 객체를 사용할 수 있도록 준비하는 역할 수행
  • 객체가 생성되는 순간에 자동 호출
  • 클래스 이름과 동일한 메서드를 생성자라고 함, 생성자는 리턴타입이 없음

기본(default) 생성자

  • 매개변수가 없고, 아무 작업 없는 생성자를 기본 생성자라고 함
  • 클래스 내부에 생성자가 1개도 없을 경우, 컴파일러가 기본생성자를 자동 생성함 -> 기본 생성자
  • 모든 클래스는 생성자가 반드시 존재하며 하나 이상 가질 수 있음

메소드란?

  • 객체의 동작(기능)
  • 호출해서 실행할 수 있는 중괄호 {} 블록
  • 메소드 호출하면 중괄호 {} 블록에 있는 모든 코드들이 일괄 실행

메소드 선언

리턴타입 메소드이름 ([매개변수선언, ...]) { ... }

메소드 이름

  • 자바 식별자 규칙에 맞게 작성

메소드 리턴 타입

  • 메소드 실행된 후 리턴하는 값의 타입
  • 메소드는 리턴값이 있을 수도 있고 없을 수도 있음

메소드 매개 변수

0개의 댓글