JAVA 78

210818_내부클래스

내부클래스 특정 클래스 내에 또 다른 클래스가 정의되는 것을 의미. 이런 내부 클래스가 필요한 이유는 지금까지 작업해왔던 클래스들과는 다르게 독립적이기는 않지만 하나의 멤버처럼 사용할 수 있다. 내부 클래스는 외부 클래스의 모든 멤버들을 마치 자신의 멤버처러 사용 가능. static 내부 클래스는 제외하고는 다른 내부 클래스는 항상 외부 클래스를 통해야 생성 가능. (예제) class OuterObj{ //내부클래스: 아웃클래스 안에서만 사용가능 //특정클래스에서만 사용하는 클래스가 필요한 경우 //멤버내부클래스: 하나의 객체로 인식 class InnerObj{ public void write() { System.out.println("내부클래스의 메서드"); } } //외부 public void dis..

JAVA 2021.08.18

210817_스캐너+다향성+switch

interface Command{ public void write(); } class Insert implements Command{ @Override public void write() { System.out.println("게시물을 추가합니다"); } } class Erase implements Command{ @Override public void write() { System.out.println("게시물을 삭제합니다"); } } class Modify implements Command{ @Override public void write() { System.out.println("게시물을 수정합니다"); } } class Select implements Command{ @Override publi..

JAVA 2021.08.17

210817_Abstract+배열

abstract class Game{ abstract void play(); //게임시작 abstract void stop(); //게임종료 } class Tom extends Game{ @Override void play() { System.out.println("Tom이 게임을 시작합니다"); } @Override void stop() { System.out.println("Tom이 게임을 종료합니다"); } } class John extends Game{ @Override void play() { System.out.println("John이 게임을 시작합니다"); } @Override void stop() { System.out.println("John이 게임을 종료합니다"); } } class ..

JAVA 2021.08.17

210817_인터페이스+다형성

//인터페이스를 구현하는 클래스(implements는 다중구현 가능) class Food implements FoodShop{ @Override public void order() { System.out.println(SHOPNAME); //SHOPNAME="돈까스집"; final이라 변경 불가능 System.out.println("파스타를 주문합니다"); } @Override public void deliver() { System.out.println("주문한 파스타 배달완료"); } } public class FoodInterEx05 { public static void main(String[] args) { //다형성으로 생성 //foodshop부모클래스, food자식클래스 FoodShop f=ne..

JAVA 2021.08.17

210817_추상클래스+다형성

//추상클래스(abstract) //추상클래스는 new로 생성 불가 //추상메서드는 오로지 추상클래스에만 존재 가능 //추상클래스는 일반메서드와 추상메서드 둘 다 존재 가능 abstract public class Fruit { public static final String MESSAGE="오늘은 즐거운 화요일"; //상수는 가급적으면 올대문자 //일반메서드..추상클래스에는 추상메서드뿐만 아니라 일반메서드도 구현 가능 public void showTitle() { System.out.println("우리는 추상클래스 공부중~"); } //추상메서드..미완성메서드(선언부만 있고 몸통{}이 없다) //오버라이딩이 목적이므로 몸통없이 선언만 abstract public void showMessage(); } ..

JAVA 2021.08.17

210813_상속

상속 클래스의 관계 has a : 특정 객체 내에서 다른 객체를 가지고 있는 것 is a : 특정 객체가 다른 객체에게 자신의 능력을 포함시켜주는 상속 관계 상속: 부모가 보유하고 있는 재산 중 일부를 자식이 물려받는 것을 의미.자바에서는 이런 클래스들간의 다중 상속을 지원하지 않으므로 객체의 명확성을 높였다. Base class(기본클래스) Super class(슈퍼 클래스) Parent class(부모 클래스) ->이는 상속을 주기 위해 준비된 특정 클래스 의미 Derivation class(유도 클래스) Sub class(하위 클래스) Child class(자식 클래스) ->특정 클래스로부터 상속을 받아 새롭게 정의되는 클래스 의미 오버라이딩 '매서드 재정의'라고도 불리며 이는 서로 상속관계로 이루..

JAVA 2021.08.13

210813_메서드

//메서드 작성요령: 접근제한자(public등)+예약어(static)+리턴값(void,string,int)+메서드명() //리턴값: 만들 때의 자료형으로 return문을 작성해야 함(void는 리턴이 없음) //반복적인 코드를 줄여서 관리용이 위해 메서드 사용 //하나의 메서드는 한가지 기능만 수행하게 해야 함(한가지 메서드에 두개의 기능이 있으면 나머지 하나를 못 씀) public class MethodTestEx1 { //boolean리턴형의 메서드 public static boolean aaa() { return false; } //int리턴형 public static int bbb() { return 100; } //연산리턴형 public static int ccc(int x,int y) { re..

JAVA 2021.08.13

210813_오버로딩

public class MethodOverloadEx2 { //메서드 오버로딩 예제 public static int sum(int a,int b) { System.out.println("1번째 함수 호출"); return a+b; } public static double sum(int a,double b) { System.out.println("2번째 함수 호출"); return a+b; } public static double sum(double a,int b) { System.out.println("3번째 함수 호출"); return a+b; } public static double sum(double a,double b) { System.out.println("4번째 함수 호출"); return a..

JAVA 2021.08.13