minghxx.blog
  • 자바의 정석 56~60강 클래스의 정의, 변수 종류, 클래스/인스턴스 변수, 메서드
    2023년 07월 30일 17시 49분 48초에 업로드 된 글입니다.
    작성자: 민발자
    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
    댓글