Back-End - Main Menu/Java 212

Ex06_14 - 멤버변수의 초기화

package com.kook.ch06Project; //국쌤 변형 예제(원본과 상이) public class Ex06_14 { /* 기본형이 제일먼저 로딩 * 초기화된 멤버가 두번째 로딩 * static은 클래스 로딩시 static 블록 로딩 * 인스턴스 블록은 생성자 실행시 마다 로딩후 생성자 초기화 */ int x; static int y; int k = 5; static int j = 10; //클래스형 블록 static { System.out.println(y); System.out.println("static{}"); } //인스턴스형 블록 { System.out.println("{}"); } //생성자 public Ex06_14() { //클래스가 public이면 생성자도 public으로 작..

Ex06_13 - 생성자에서 다른 생성자 호출 (this)

package com.kook.ch06Project; //국쌤 변형 예제(원본과 상이함) public class Ex06_13 { public static void main(String[] args) { Car0613_01 c1 = new Car0613_01(); Car0613_01 c2 = new Car0613_01("dark"); } } class Car0613_01{ String color; String gearType; int door; Car0613_01(){ this("white"); //자기 클래스의 다른 생성자인 파라미터 하나 가진 생성 호출 } Car0613_01(String color){ this(color,"auto",4); //자기 클래스의 다른 생성자인 파라미터 세개 가진 생성 호..

Ex06_12 - 매개변수가 있는 생성자

package com.kook.ch06Project; public class Ex06_12 { //국쌤 변형 예제(원본과 상이) public static void main(String[] args) { Car01 c1 = new Car01(); /* 기본형 생성자로 만들면 Car클래스 객체 c1의 멤버변수는 초기값이 기본값으로 생성됨 * color는 null, gearType도 null, door는 0 */ //객체를 만든 후에 멤버변수 초기화 c1.color = "white"; c1.gearType = "auto"; c1.door = 4; //객체 생성시 생성자를 이용하여 초기화 Car01 c2 = new Car01("dark", "manual", 3); System.out.println("c2 col..

Ex06_11 - 기본 생성자

package com.kook.ch06Project; //국쌤 변형 예제(원본과살짝다름) public class Ex06_11 { //main메서드를 갖고 있는 메인 클래스이므로 접근제어자가 public public static void main(String[] args) { //MainClass의 main메서드는 주로 자기 프로젝트의 다른 클래스의 객체를 생성하고 //그 객체의 메서드들을 호출하여 프로젝트 일을 처리 Data0611_1 d1 = new Data0611_1(); d1.value = 10; //객체 생성후 객체의 멤버변수를 초기화 Data0611_2 d2 = new Data0611_2(10); //2개의 생성자 중 파라미터가 1개인 생성자를 사용 Data0611_2 d3 = new Data..

Ex06_10 - 오버로딩

package com.kook.ch06Project; //국썜 변형 예제 public class Ex06_10 { public static void main(String[] args) { MyMath3 mm = new MyMath3(); //호출 시 오버로딩된 메서드의 파라미터에 맞추어 호출 System.out.println(mm.add(3,3)); System.out.println(mm.add(3,3L)); System.out.println(mm.add(3L,3)); System.out.println(mm.add(3L,3L)); int[] a = {1,2,3}; System.out.println("==========================="); System.out.println("요소 개수 : ..

Ex06_invoke

package com.kook.ch06Project; //국쌤 예제-교재에 없는 예제 public class Ex06_invoke { public static void main(String[] args) { TestClass tc = new TestClass(); tc.instanceMethod2(); //다른 클래스의 인스턴스 메서드는 객체 생성 후 사용가능 TestClass.staticMethod2(); //다른 클래스의 클래스 메서드는 클래스명.메서드명으로 사용가능 } } class TestClass{ //동일 클래스에서 메서드 호출 int iv; //인스턴스 변수 static int sv; //클래스 변수 void instanceMethod() { //인스턴스 메서드 //인스턴스 메서드 안에서는 ..

Ex06_09 - static 메서드와 인스턴스 메서드

package com.kook.ch06Project; public class Ex06_09 { public static void main(String[] args) { //static 메서드 호출 System.out.println(MyMath2.add(200, 200L)); System.out.println(MyMath2.subtract(200, 200L)); System.out.println(MyMath2.multiply(200, 200L)); System.out.println(MyMath2.divide(200, 200L)); //인스턴스 메서드 호출 MyMath2 mm = new MyMath2(); mm.a = 200L; mm.b = 200L; } } class MyMath2 { long a, b; ..

Ex06_08 - 참조형 반환타입

package com.kook.ch06Project; public class Ex06_08 { public static void main(String[] args) { Data3 d = new Data3(); //주소값을 저장할 공간을 생성, new연산자로 객체 인스턴스화 d.x = 10; Data3 d2 = copy(d); //return값이 tmp임 System.out.println("d.x : " + d.x); System.out.println("d2.x : " + d2.x); } static Data3 copy(Data3 d) { //static메서드, Ex06_08클래스의 멤버메서드, 리턴타입이 Data3객체, 파라미터도 Data3객체 Data3 tmp = new Data3(); //tmp.x ..

Ex06_07 - 참조형 매개변수

package com.kook.ch06Project; public class Ex06_07 { public static void main(String[] args) { // 참조형 변수값을 인자로 사용시 Data1 d = new Data1(); d.x = 10; System.out.println("main () x = " + d.x); change(d); //Data1의 객체 d를 인자로 사용 System.out.println("After change(d)"); /* 인자로 전달시 주소를 전달하여 그 주소에 저장된 멤버변수 값을 변경하므로 호출한 곳 멤버변수도 변경 */ System.out.println("main () x = " + d.x); } static void change(Data1 d) { /..

Ex06_06 - 기본형 매개변수

package com.kook.ch06Project; public class Ex06_06 { public static void main(String[] args) { // 기본형 값을 매개변수로 전달 Data d = new Data(); d.x = 10; System.out.println("main() : x = " + d.x); change(d.x); //change메서드 호출 /*main메서드 안에서 메서드명으로 바로 호출이 가능한 것은 main메서드와 같은 클래스의 static메서드만 가능 static메서드 안에서 동일 클래스의 static메서드 호출은 메서드명만 입력하여 사용가능 */ System.out.println("After change(d.x) : " + d.x); } static voi..