JAVA 66

객체지향 변수의 초기화

지역변수 (lv)는 수동 초기화 해야한다. (사용전 필수)******* 멤버변수(iv,cv)는 자동 초기화 된다. (초기값) 초기화 순서 cv -> iv 자동 -> 간단 -> 복잡 클래스 변수 초기화 시점 : 클래스가 처음 로딩(메모리 올라갈때) 단 한번 인스턴스 변수 초기화 시점 : 인스턴스가 생성될 때 마다 class InitTest{ int x; // 인스턴스 변수 iv 자동 초기화된다 int y = x; // 인스턴스 변수 iv 자동 초기화된다 void method1(){ int i; // 지역변수 int j = i; // 에러 지역변수를 초기화 하지않았으므로 //int i = 0; 을 대신 넣어줘야 한다. 초기화 방법 1. 명시적 초기화 ( = ) 대입 연산자를 이용한 초기화 class Car ..

JAVA 2022.09.25

객체지향 생성자 this(), 참조변수 this

생성자에서 다른 생성자 호출할 때 사용 다른 생성자 호출시 첫 줄에서만 사용가능 클래스 이름대신 this()를 사용한다. class Car2 { String color; String gearType; int door; Car2(){ this("white", "auto", 4); } Car2(String color){ this(color, "auto", 4); } Car2(String color, String gearType, int door){ this.color = color; this.gearType = gearType; this.door = door; } } 코드의 중복을 막기위해 같은 클래스 내에 코드는 this로 호출한다 **참조변수 this** 인스턴스 자신을 가르키는 참조변수 인스턴스 메서드..

JAVA 2022.09.25

객체지향 생성자 (constructor), 기본 생성자(default constructor)

인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드' 인스턴스 생성시 수행할 작업(iv 초기화)에 사용 Time t = new Time(); //객체 생성 t.hour = 12; // iv초기화 t.minut = 34; // iv초기화 t.second = 56; // iv초기화 ------------------------------------------- Time t = new Time(12,34,56); **생성자 이름이 클래스 이름과 같아야 한다.** **리턴값이 없다 (void 안붙임)** **모든 클래스는 반드시 생성자를 가져야 한다.** **기본생성자** 매개변수가 없는 생성자 생성자가 하나도 없을 때만, 컴파일러가 자동 추가 클래스이름 () {} // 기본생성자 Point(){} // ..

JAVA 2022.09.25

객체지향 메서드 오버로딩(overloading)

**한 클래스 안에 같은 이름의 메서드 여러 개를 정의 하는것** 오버로딩이 성립하기 위한 조건 메서드 이름이 같아야 한다. 매개변수의 개수 또는 타입이 달라야 한다. 반환 타입은 영향없다. public class Ex6_5 { // 메서드 이름이 같아야한다. 개수 타입에서 에러 int add(int a, int b) { return a+b; } //오버로딩x 동일 메소드 정의 int add(int x, int y) { return x+y; } //오버로딩x // 반환 타입은 영향없다 int add(int a, int b) { return a+b; } // 오버로딩 x int add(int a, int b) { return (long)(a+b); } // 오버로딩 x //매서드 이름이 같고 //매개변수의..

JAVA 2022.09.25

객체지향 static 메서드와 instance 메서드

class Math2{ long a, b; long add() { //인스턴스 메서드 return a+b; } static long add(long, longb) { //클래스 메서드(static 메서드) return a + b; } } 호출 class Math2{ public static void main(String arg[]){ System.out.println(Math2.add(200L,100L); 클래스메서드 호출 '클래스이름.메서드' Math2 mm = new Math2(); // 인스턴스 생성 (iv 생성) mm.a = 200L; mm.b = 100L; System.out.printl(mm.add()); //인스턴스 메서드 호출 (iv로 작업) 인스턴스 메서드 인스턴스 생성 후 '참조변수.메..

JAVA 2022.09.25

객체지향 매서드

1. 동일한 작얼의 코드들을 묶어 놓은 것 메서드의 장점 - 코드의 중복을 줄일 수 있다. - 코드의 관리가 쉽다. -코드를 재사용할 수 있다 -코드가 간결해서 이해하기 쉬워진다 매서드 = 선언부 + 구현부 반환타입 메서드이름 (타입변수명,타입 변수명, ...) - 선언부 { 메서드 호출시 수행될 코드 } - 구현부 지역변수 : 메서드 내에 선언된 변수 지역변수 내에 매개변수 이름은 겹쳐 package javachap06; public class Ex_64 { public static void main(String[] args) { // 2. MyMath 객체생성 MyMath mm = new MyMath(); // 3. MyMath 객체사용 ( 객체의 메서드 호출 ) long result1 = mm.ad..

JAVA 2022.09.24

객체지향 선언 위치에 따른 변수의 종류

class Variables { - 클래스 영역 시작 int iv; //인스턴스 변수 - 클래스영역 static int cv; // 클래스 변수 (static변수, 공유변수) -클래스 영역 void method() { - 메서드 영역 시작 int lv = 0; //지역변수 localvaliable - 메서드 영역 } - // 메서드영역 끝 }- 클래스영역 끝 클래스 변수 CV (class variable) - 클래스영역 - 클래스가 메모리에 올라갈 때 인스턴스 변수 IV (instance variable) - 클래스영역 - 인스턴스가 생성되었을 때 지역 변수 Lv (local variable) - 클래스 영역 이외의 영역 ( 메서드, 생성자,초기화 블럭 내부) - 변수 선언물이 수행될때 clss Card..

JAVA 2022.09.24