정리/Java

자바의 정석 56~60강 클래스의 정의, 변수 종류, 클래스/인스턴스 변수, 메서드

민발자 2023. 7. 30. 17:49
728x90

ch 6-9~10 클래스 정의

1. 클래스

  • 설계도
  • 데이터+함수
  • 사용자 정의타입

변수 : 하나의 데이터를 저장할 수 있는 공간

배열 : 같은 종류의 데이터를 묶어서 저장할 수 있는 공간

구조체 : 서로 연관된 데이터(다른 종류)를 묶어서 저장할 수 있는 공간

클래스 : 데이터와 함수의 결합(구조체 + 함수)

 

2. 사용자 정의타입

원하는 타입을 직접 만들 수 있음

// 시간이라는 데이터를 다루기 위한 변수
int hour;
int minute;
int second;

// 여러 시간을 다룰때 배열을 사용하게 된다면?
int[] hour = new int[3];
int[] minute = new int[3];
int[] second = new int[3];
// 시분초 데이터를 사용하기 위해선 배열을 다뤄 시분초를 묶어 하나으 시간으로 반환하는 과정이 필요


//class를 사용하면 시간이라는 데이터를 정의하여 사용할 수 있다
class Time{
	int hour;
    int minute;
	int second;
}

Time[] t = new Time[3];
t[0] = new Time();
t[1] = new Time();
t[2] = new Time();
// 객체배열을 이용하면 시분초를 하나로 묶기위한 과정을 줄일 수 있다.

ch 6-11 선언위치에 따른 변수 종류

  •  

종류 선언 위치 생성시기 설명
클래스 변수 cv
(static변수, 공유 변수)
클래스 영역 클래스가 메모리에 올라갈 때
(RAM(메모리)에 로딩)
객체 생성 불필요
아무때나 사용가능
인스턴스 변수 iv 인스턴스가 생성되었을 때 객체 생성 필요
객체를 생성해야 사용 가능
지역 변수 lv 클래스 영역 이외의 영역
(메서드, 생성자, 초기화 블럭 내부)
변수 선언문이 수행되었을 때 메서드를 실행해야 생성 실행동안 사용 가능
메서드 종료시 자동 제거

 

객체는 iv를 묶어놓은 것!


ch 6-12~13 클래스 변수, 인스턴스 변수

카드라는 객체

무늬, 숫자는 개별 속성

폭과 높이는 공통 속성

 

개별 속성 → 인스턴스 변수

공통 속성 → 클래스 변수

 

클래스 변수는 1개만 생성

인스턴스 변수는 객체마다 생성

calss Card {
    // 개별 속성 → 인스턴스 변수
    String kind;
    int num;
    
    // 공통 속성 → 클래스 변수
    static int width = 100;
    static int height = 250;
}


Card c = new Card();

// 인스턴스 변수 사용
c.kind = "heart";
c.num = 5;

// 클래스 변수 사용
Card.width = 200;
Card.height = 200;
// 참조 변수를 사용할 수 있지만 클래스 명을 사용하는게 바람직

ch 6-14~16 메서드

1. 작업 단위로 문장들을 묶어 이름 붙인 것

 

2. 값(입력)을 받아서 처리하고 결과를 반환(출력)

메서드는 클래스 안에 꼭 있어야 하고 함수는 클래스에 독립적

3. 장점

  • 코드의 중복을 줄일 수 있음
  • 코드의 관리가 쉬움
  • 코드를 재사용할 수 있음
  • 코드가 간결해져 이해도↑

4. 메소드 작성

  • 반복적으로 수행되는 여러 문장을 메서드로 작성
  • 메서는 하나는 한 가지 기능만 수행

5. 메서드 구성

선언부 + 구현부

반환이 없는 경우 선언부에 void 입력

반환타입 메서드이름 (타입 매개변수명n, ...) // 선언부
{
	// 구현부
}

// 반환이 없는 경우
void 메서드이름 ()
{}

 

6. 지역변수

매서드 내 선언된 변수

매개변수, 구현부에 선언된 변수

다른 메서드와 변수명 겹쳐도 상관없음 메서드 내부에서만 존재


ch 6-17~19 메서드 호출

// 메서드 호출
메서드이름(값n, ...)

int result = add(3, 5) // 반환값이 있는 경우 변수 선언하여 저장

 

 

 

 

728x90