본문 바로가기

정리하기 이전 자료 ( before 20-11 )/Java15

String.split() 을 이용하여 , 값 받기 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); ArrayList al = new ArrayList(); int number = Integer.parseInt(br.readLine()); for(int i=0;i 2020. 4. 16.
인터페이스의 요소들 다음과 같은 Interface를 만들었다. public interface InterfaceTest { static void printStatic(){ System.out.println("interface static method"); printPrivateStatc(); } default void print(){ System.out.println("interface default method"); printPrivate(); printPrivateStatc(); } private void printPrivate(){ System.out.println("private interface method"); } private static void printPrivateStatc(){ System.out.prin.. 2020. 4. 13.
Naming Conventions 2. Classes naming conventions In Java, class names generally should be nouns, in title-case with the first letter of each separate word capitalized. e.g. public class ArrayList {} public class Employee {} public class Record {} public class Identity {} 클래스의 이름은 명사여야 한다. 3. Interfaces naming conventions In Java, interfaces names, generally, should be adjectives. Interfaces should be in titlecase .. 2020. 4. 6.
인터페이스 모두 Abstract method로 이루어져있다. 인터페이스에 선언한 변수는 모두 상수가 되고, 메서드는 전부 추상 메서드가 된다. public interface Calc{ int a = 3; // public static final int a = 3; int add(int num1,int num2) // abstract int add() } 이 때, int add(int num1,int num2) 을 보면 num1 , num2 를 받아서 두 수를 add 하고 int형으로 돌려줄 것이라는 것을 유추할 수 있다. Interface Vs Abstract class 결론부터 말하자면 인터페이스는 설계도로서의 계약서, 규약('명세(specification' 라고 흔히 말한다)이라고 생각하면 되고, 추상 클래스는.. 2020. 3. 30.
추상클래스 & 템플릿 메서드 추상클래스(abstract class) public abstract class Tv { public abstract void show(); } - 선언은 상위클래스에 하고, 구현의 책임을 하위클래스에 위임하는 형태. - 추상 메소드를 하나라도 포함하는 class는 추상 클래스이다. 추상 클래스는 인스턴스 생성이 불가능하다.( 추상 메소드 = body가 없는 메소드 ) - 메소드가 전부 구현돼있더라도, abstract가 포함돼있다면 추상클래스이다. : 상속을 하기 위한, 기반이 되는 클래스에 abstract 를 붙인다. abstract class Computer{ public abstract void message(); public void turnOn(){ System.out.println("켠다"); .. 2020. 3. 30.
DownCasting & instance of DownCasting class Car{ void drive(){ System.out.println("자동차가 움직인다"); } } class FireEngine extends Car { void water() { System.out.println("물을 쏜다"); } void drive(){ System.out.println("소방차가 움직인다"); } } public class DownCasting { public static void main(String args[]){ Car car = new Car(); FireEngine fe = new FireEngine(); car = fe; // Upcasting car.drive(); FireEngine fe2 = new FireEngine(); fe2.. 2020. 3. 29.
상속에서의 생성자 생성자 class Customer{ public Customer(){ System.out.println("고객 호출"); } } class VipCustomer extends Customer{ public VipCustomer(){ // super(); 자동생성 System.out.println("VIP고객 호출"); } } public class Test { public static void main(String args[]) { VipCustomer vipCustomer = new VipCustomer(); } } 출력결과: 고객 호출 VIP고객 호출 - Customer는 생성하지 않고 Customer의 하위 클래스인 VipCustomer의 인스턴스만 생성했지만, Pre-compile 단계에서 알아서.. 2020. 3. 29.
다형성 , 상속, 가상함수 , 동적바인딩 다형성 다형성은 동일한 코드로 경우에 따라 다른 동작을 하게 되는 것을 말한다. 다형성은 하나의 코드가 타입에 따라 다르게 해석되어 다른 일을 할 수 있는 것을 말한다. 상속 클래스의 작성에서 코드의 재사용이 가능하게 해주는 중요한 개념이다. 출처: https://plas.tistory.com/29 [프로그래밍노리터] Upcasting 은 이런 다형성(Polymorphism)을 사용하고 싶을 때, 부모의 타입에 자식의 인스턴스를 넣는 것을 가르킨다. 상속 상속의 사용 시기 : 1. IS-A(inheritence) is a relationship 자식 - 부모 2. HAS-A(composition) : 하위 클래스가 상위 클래스를 포함하는 경우 is-a (상속) has-a (상속 X) 지금은 안쓰지만 예전.. 2020. 3. 28.