Ch6-38_변수의 초기화
2022. 2. 13. 21:54
JAVA/Chapter6
Ch6-38 변수의 초기화 - 지역변수(lv)는 수동 초기화 해야함(사용전) - 멤버변수(iv, cv)는 자동 초기화 된다. class InitTest{ int x; // 인스턴스 변수 int y = x; // 인스턴스 변수 void method1(){ int i; // 지역 변수 int j = i; // 에러, 지역변수를 초기화 하지 않고 사용 } } 자료형 기본값 boolean false char '\u0000' byte, short, int 0 long 0L float 0.0f double 0.0d 또는 0.0 참조형 null Ch6-39 멤버변수의 초기화 1. 명시적 초기화(=) class car{ int door = 4; // 기본형(primitive type) 변수의 초기화 Engine e =..
Ch6-36_생성자 this()
2022. 2. 13. 16:15
JAVA/Chapter6
Ch6-36_생성자 this() 1. 생성자에서 다른 생성자 호출할 때 사용 2. 다른 생성자 호출 시 첫 줄에서만 사용가능 class Car2 { String color; // 색상 String gearType; // 변속기 종류 - auto(자동), manual(수동) 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; } } Ch6-37_참조변수 this() 1.인스턴스 자..
Ch6-32_생성자(constructor)
2022. 2. 13. 10:00
JAVA/Chapter6
Ch6-32_생성자(constructor) 1. 인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드' 2. 인스턴스 생성 시 수행할 작업(iv 초기화)에 사용 Time t = new Time(); t.hour = 12; t.minute = 34; t.second = 56; Time t = new Time(12, 34, 56); 1. 이름이 클래스 이름과 같아야 한다. 2. 리턴 값이 없다.(void 안 붙임) 3. 모든 클래스는 반드시 생성자를 가져야 한다. 클래스 이름(타입 변수명, 타입 변수명, ...) { // 인스턴스 생성 시 수행될 코드, // 주로 인스턴스 변수의 초기화 코드를 적는다. } Ch6-33_기본 생성자(default constructor) 생성자가 하나도 없을 때만, 컴파일..
Ch6-30_오버로딩(overloading)
2022. 2. 13. 09:31
JAVA/Chapter6
Ch6-30_오버로딩(overloading) 한 클래스 안에 같은 이름의 메서드 여러 개 정의하는 것 오버로딩이 성립하기 위한 조건 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. 3. 반환 타임은 영향없다. 보기1 : 오버로딩 X int add(int a, int b) { return a+b;} int add(int x, int y) { return x+y;} 보기2 : 오버로딩 X int add(int a, int b) {return a+b;} long add(int a, int b) {return (long)(a+b);} 보기3 : 오버로딩 O long add(int a, long b) {return a+b;} long add(long a, int b) {retur..
Ch6-26_static 메서드와 인스턴스 메서드
2022. 2. 13. 08:31
JAVA/Chapter6
Ch6-26_static 메서드와 인스턴스 메서드 1. 인스턴스 메서드 - 인스턴스 생성 후, '참조변수.메서드이름()'으로 호출 - 인스턴스 멤버(iv, im)와 관련된 작업을 하는 메서드 - 메서드 내에서 인스턴스 변수(iv) 사용가능 2. static 메서드(클래스 메서드) - 객체생성없이 '클래스이름.메서드이름()'으로 호출 - 인스턴스 멤버(iv, im)와 관련없는 작업을 하는 메서드 - 메서드 내에서 인스턴스 변수(iv) 사용불가 class MyMath2 { long a, b; long add() { // 인스턴스 메서드 return a + b; } static long add(long a, long b) { // 클래스 메서드(static 메서드) return a + b; } } class ..
Ch6-24_참조형 매개변수
2022. 2. 13. 07:36
JAVA/Chapter6
Ch6-24_참조형 매개변수 1. 기본형 매개변수 - 변수의 값을 읽기만 할 수 있다.(read only) 2. 참조형 매개변수 - 변수의 값을 읽고 변경할 수 있다.(read & write) class Data2 { int x;} class test { public static void main(String[] args) { Data2 d = new Data2(); d.x = 10; System.out.println("main() : x = " + d.x); change(d); System.out.println("After change(d)"); System.out.println("main() : x = " + d.x); } static void change(Data2 d) { // 참조형 매개변수 d..
Ch6-22_호출스택(call stack)
2022. 2. 12. 10:50
JAVA/Chapter6
Ch6-22_호출스택(call stack) 스택(stack) : 밑이 막힌 상자. 위에 차곡차곡 쌓인다. 메서드 수행에 필요한 메모리가 제공되는 공간 메서드가 호출되면 호출 스택에 메모리 할당, 종료되면 해제 class test{ public static void main(String[] args){ System.out.println("Hello"); } }
Ch6-17_메서드의 호출
2022. 2. 11. 21:57
JAVA/Chapter6
Ch6-17_메서드의 호출 메서드 이름(값1, 값2, ...); // 메서드를 호출하는 방법 Ch6-18_메서드의 실행흐름 MyMath mm = new MyMath(); // 먼저 인스턴스를 생성한다. long value = mm.add(1L, 2L); // 메서드를 호출한다. long add(long a, long b){ long result = a + b ; return result; } 1. main 메서드에서 메서드 add를 호출한다. 인수 1L과 2L이 메서드 add의 매개변수 a, b에 각각 복사(대입)된다. 2. 메서드 add의 괄호{} 안에 있는 문장들이 순서대로 수행된다. 3. 메서드 add의 모든 문장이 실행되거나 return 문을 만나면, 호출한 메서드(main메서드)로 되돌아와서 이..
Ch6-8_객체 배열
2022. 2. 11. 11:29
JAVA/Chapter6
Ch6-8_객체 배열 객체 배열 == 참조변수 배열 Tv tv1, tv2, tv3; -> Tv[] tvArr = new Tv[3]; // 길이가 3인 Tv 타입의 탐조변수 배열 tvArr[0] = new Tv(); tvArr[1] = new Tv(); tvArr[2] = new Tv(); Tv[] tvArr = {new Tv(), new Tv(), new Tv()}; Tv t1 = new Tv(); Tv t2 = new Tv(); Tv t3 = new Tv(); Tv[] tvArr = new Tv[3]; tvArr[0] = new Tv(); tvArr[1] = new Tv(); tvArr[2] = new Tv(); Ch6-9_클래스의 정의(1) 클래스 == 데이터 + 함수 1. 변수 : 하나의 데이터를 ..
JAVA - Ch6-2_클래스와 객체
2022. 2. 10. 11:26
JAVA/Chapter6
클래스와 객체 클래스의 정의 : 클래스란 객체를 정의해 놓은 것 클래스의 용도 : 클래스는 객체를 생성하는 데 사용 객체의 정의 : 실제로 존재하는 것, 사물 또는 개념 객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름 클래스 객체 제품 설계도 제품 객체의 구성요소 - 속성과 기능 객체 = 속성(변수) + 기능(메서드) 속성 크기, 깊이, 높이, 색상, 볼륨, 채널 등 기능 켜기, 끄기, 볼륨 높이기, 볼륨 낮추기, 채널 변경하기 등 class TV { // 속성, 변수 String color; // 색깔 boolean power; // 전원상태 int channel; // 채널 // 기능, 메서드 void power(){ power = !power; } void channelUp(){ cha..
JAVA - Ch6-1_객체지향 언어
2022. 2. 10. 01:11
JAVA/Chapter6
객체지향 언어 80 년 초 소프트웨어의 위기 - 빠른 변화를 못 쫓아감 해결책으로 객체지향 언어를 도입 절차적 -> 객체지향 코드의 재사용성이 높고 유지보수가 용이, 중복 코드 제거 객체지향 언어 = 프로그래밍 언어 + 객체지향 개념, 규칙 1. 캡슐화 2. 상속 3. 추상화 4. 다형성