본문 바로가기

분류 전체보기407

자바의 정석2-7 생성자 (생성자 this( ), 참조변수this) 생성자(constructor): 인스턴스가 생성될 때마다 호출되는 ‘인스턴스 초기화 메서드’ - 인스턴스 생성 시 수행할 작업(iv 초기화)에 사용 - 생성자가 존재하는 이유는 iv(인스턴스 변수) 초기화를 편하게 하기 위해서! Time t = new Time( ); 생성자 호출 부분 1) Time t = new Time(); // 생성자 호출(기본 생성자) t.hour = 12; // iv 초기화 t.minute = 34; // iv 초기화 t.second = 56; // iv 초기화 2) Time t = new Time(12, 34, 56); // 괄호 안이 생성자, 직접 생성자 추가해야 함 1번과 2번은 같은 코드 생성자(constructor)의 규칙 1. 생성자의 이름이 클래스 이름과 같아야 한다.. 2021. 12. 31.
자바의 정석2-6 오버로딩(overloading) 오버로딩(overloading): 한 클래스 안에 같은 이름의 메서드 여러 개 정의하는 것 컴파일러가 매개변수의 타입을 보고 맞는 타입의 메서드를 연결해줌! 오버로딩이 성립하기 위한 조건 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. 3. 반환 타입은 영향이 미치지 않는다. 각 보기가 오버로딩일지 아닐지 생각해보기 더보기 더보기 1번 조건인 메서드이름이 add로 같지만 2번 조건인 매개변수의 개수나 타입이 달라야 하는데 매개변수의 개수가 같고, 타입이 int로 같기 때문에 오버로딩이 아닌 메서드 중복정의 더보기 더보기 1번 조건인 메서드이름이 add로 같지만 보기 1번과 마찬가지로 매개변수의 개수랑 타입이 다르지 않고, 변환 타입은 int와 long으로 다르지만 오버로.. 2021. 12. 31.
자바의 정석2-5 static 메서드와 instance 메서드 static 메서드: 메서드에 static이 붙은 것(클래스 메서드) 인스턴스 메서드: static이 붙지 않은 것 class MyMath2 { long a, b; // 인스턴스 변수(클래스 전체 사용 가능) long add() { // 인스턴스 메서드(iv를 사용) return a + b; // a와 b는 인스턴스 변수 } static long add(long a, long b) { // 클래스 메서드(static메서드):iv사용 무, g a와 b는 지역 변수 return a + b; // a와 b는 지역변수(인스턴스 메서드보다 지역변수가 더 가까워서) } } 인스턴스 메서드(instance method) - (1) 인스턴스(객체)생성 후, (2)‘참조변수.메서드이름();’으로 호출 - 인스턴스 멤버(.. 2021. 12. 31.
자바의 정석2-4 기본형 매개변수와 참조형 매개변수 기본형 매개변수(Primitive parameter)와 참조형 매개변수(Reference parameter) 기본형 매개변수(8개) – 변수의 값을 읽기만 할 수 있다.(read only) 참조형 매개변수 – 변수의 값을 읽고 변경할 수 있다.(read & write) 메서드를 호출할 때 매개변수로 지정한 값을 메서드의 매개변수에 복사해서 넘겨주게 되는데 이때 매개변수 타입이 무엇인가에 따라 결과가 다르게 나타남 1) 기본형 매개변수 - 메서드에서 지역변수의 값이 복사되는 값(지역변수는 메서드를 벗어나면 그 값도 소멸됨) - 기본형 매개변수는 실질 값이 복사되는 것이고, 실질값이 복사되어 소멸하면 그 해당 복사된 변수의 값은 소멸됨 maix(): x = 10 change(): x = 1000 After .. 2021. 12. 31.
자바의 정석2-3 메서드의 개념(return문, 호출스택) 메서드 작업 단위로 문장들을 묶어서 이름 붙인 것 메서드 호출(사용) 값(입력)을 받아서 처리하고, 결과를 반환(출력) -> 같은 작업을 하는 코드를 메서드로 묶고 그 메서드를 호출하면 코드가 훨씬 간결해짐! -> 메서드는 반드시 클래스 안에 있어야 하고 함수는 상관 xx(클래스 독립적) 메서드의 장점 1) 코드의 중복 코드 제거 2) 코드의 관리용이 3) 코드를 재사용 가능 4) 코드가 간결해서 이해하기 쉬워짐 메서드의 작성 - 반복적으로 수행되는 여러 문장을 메서드로 작성(반복적이지 않더라도 긴 코드면) - 하나의 메서드는 한 가지 기능만 수행하도록 작성 메서드의 구조 메서드의 선언부 1) 반환 타입 (int + int --> int) 2) 메서드 이름 (add) 3) 매개변수(입력), 작업에 필요한.. 2021. 12. 31.
자바의 정석2-2 객체의 생성과 사용(cv, iv, lv의 개념) 객체의 생성과 사용 1. 객체의 생성 클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수를 선언 변수명 = new 클래스명( ); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장 TV t, // Tv클래스 타입의 참조변수 t를 선언 t = new TV( ); // Tv인스턴스(객체)를 생성한 후, 생성된 Tv인스턴스의 주소를 t에 저장 -> Tv t = new Tv( ); -> 객체를 다루려면 반드시 참조변수(1)가 필요하고 객체를 생성(2)한다음에 대입연산자(3)로 연결! // 여기서 참조변수(리모컨)는 t 2. 객체의 사용 - 객체가 가지고 있는 변수(속성)와 매서드(기능)를 사용 t.channel = 7; // Tv인스턴스의 멤버변수 channel의 값을 7로 한다. t.c.. 2021. 12. 30.