Back-End - Main Menu/Java 212

Ex07_14~15 - 내부 클래스제어자와 접근성(3~4)

package com.kook.ch07Project; //국쌤변형예제(원본과상이) public class Ex07_14 { //멤버 변수 private int outerIv = 0; //Ex07_14클래스 안에서만 사용 static int outerCv = 0; //접근제어자가 없으므로 (default)이므로 내 패키지안에선 어디서나 사용가능 class InstanceInner { //인스턴스형 내부 클래스는 부모클래스의 멤버 이므로 다른 멤버 사용가능 int liv = outerIv; int liv2 = outerCv; } static class StaticInner { //클래스형 내부 클래스 //static은 static멤버는 그대로 사용하나 인스턴스멤버는 외부객체를 만들어 사용 //int siv ..

Ex07_13 - 내부 클래스의 제어자와 접근성(2)

package com.kook.ch07Project; //국쌤변형예제(원본과상이) public class Ex07_13 { int outerV = 100; class InstanceInner { //인스턴스형 내부 클래스 } static class StaticInner { //static클래스(클래스형) } InstanceInner iv = new InstanceInner(); //인스턴스형 멤버변수 iv 인스턴스 내부클래스의 객체로 바로 사용 static StaticInner cv = new StaticInner(); //클래스형 멤버 변수 cv는 클래스형 내부 클래스를 바로 사용 //outer클래스의 클래스형 멤버 메서드 static void staticMethod() { //static메서드는 인스..

Ex07_12 - 내부 클래스의 제어자와 접근성

package com.kook.ch07Project; //국쌤변형예제(원본과상이) public class Ex07_12 { //외부 클래스는 일반제어자는 abstract,final //인스턴스형 내부 클래스 class InstanceInner { int iv = 100; //static int cv = 100; //클래스형 멤버변수는 instance 내부 클래스에선 사용불가,1.7버전은 지원? final static int CONST = 100; //단, 상수는 인스턴스 내부클래스에서도 사용가능 } //클래스형 내부 클래스 static class StaticInner { int iv = 200; //인스턴스형도 사용가능 static int cv = 200; //static 내부 클래스에선 static변수..

Ex_Outer (내부클래스)

package com.kook.ch07Project; public class Outer { //extends가 없으므로 실제는 Object상속 //내부클래스는 클래스의 멤버인 멤버변수,멤버메서드처럼 처리함 int iv = 0; //인스턴스 멤버변수 static int cv = 0; //클래스형 멤버변수 void myMethod() { //인스턴스 멤버 메서드 int x = 0; //메서드나 초기화 블록안에 있는 클래스는 로컬 클래스이다. class Localclass { } } static void mySMethod() { //클래스형 멤버메서드 int y = 0; } public Outer() { //생성자 super(); //Object 생성자 호출,생략 가능 } //내부 클래스도 클래스의 멤버인 멤..

Ex07_11 - default메서드와 static메서드

package com.kook.ch07Project; public class Ex07_11 { public static void main(String[] args) { ChildEx0711 c = new ChildEx0711(); c.method1(); //인터페이스의 default메서드가 충돌나서 클래스에서 재정의한 메서드를 사용함 c.method2(); //조상 ParentEx0711과 인터페이스의 메서드가 충돌시 조상의 메서드를 사용함 //static(클래스형)메서드는 인터페이스명으로 접근 MyInterface.staticMethod(); MyInterface2.staticMethod(); //구현 추상 메서드 호출 c.absMethod1(); } } //조상 클래스 생성 class ParentEx..

Ex_PlayingCard (인터페이스)

package com.kook.ch07Project; //국쌤예제-교재에 없는 내용(인터페이스 만드는 방법) public interface PlayingCard { //인터페이스는 상수와 추상메서드로만 만듬 public static final int SPADE = 4; //인터페이스안의 상수는 public static final을 생략하거나 일부 생략가능 final int DIAMOND = 3; static int HEART = 2; int CLOVER = 1; //인터페이스안의 추상메서드는 접근제어자가 public이어야 한다.(추상클래스는 public이 아니어도 된다.) public abstract String getCardNumber(); //인터페이스 안에선 public abstract는 생략가능 ..

Ex07_10 - 추상클래스 작성 (Unit,Marine,Dropship - Class포함)

package com.kook.ch07Project; //국쌤변형예제(원본과상이) public abstract class Unit { //abstract:추상클래스 //추상클래스는 하나 이상의 추상 메서드가 있으면 추상 클래스로 만든다. //추상메서드가 하나도 없어도 추상 클래스로 정의된 클래스도 가능(원칙에 어긋난것이니 있다는 정도만 알것) //추상메서드가 있다는것 외엔 일반 메서드와 동일(멤버변수,멤버메서드,생성자) int x,y; //일반메서드 void stop() { System.out.println("Stop!"); } //추상메서드 추상을 나타내는 기타 제어자 abstract를 붙이고 선언부만 만들고 ;으로 종료 abstract void move(int x, int y); } public cl..

Ex07_09 - 여러 종류 객체를 배열로 다루기

package com.kook.ch07Project; //국쌤예제-(원본과상이) public class Ex07_09 { public static void main(String[] args) { Buyer0709 b = new Buyer0709(); b.buy(new Tv0709()); //Product0709의 자손이므로 인자로 사용 가능 b.buy(new Computer0709()); b.buy(new Audio0709()); b.buy(new Tv0709()); //Product0709의 자손이므로 인자로 사용 가능 b.buy(new Computer0709()); b.buy(new Audio0709()); b.buy(new Tv0709()); //Product0709의 자손이므로 인자로 사용 가능 ..

Ex07_08 - 매개변수의 다형성

package com.kook.ch07Project; //국쌤 변형 예제-(원본과 상이) public class Ex07_08 { //메인클래스(클래스명은 자바파일명과 동일해야함) public static void main(String[] args) { //매개변수(파라미터)의 다형성 Buyer b = new Buyer(); //기본 생성자 사용 b.buy(new TVex0708()); //Product파라미터에 하위 클래스인 TVㄷㅌ0708사용 b.buy(new Computer()); System.out.println("남은 돈은 : " + b.money); System.out.println("보너스는 : " + b.bonusPoint); } } class Product { /* extends Obje..