public class Penguin extends Animal{ public String habitat; public void showHabitat() { System.out.printf("%s는 %s에 살아\n", name, habitat); } }public class Animal { public String name; public void showName() { System.out.println("안녕 나는 " + name + "야. 반가워."); } }실행 코드public class Driver { public static void main(String[] args) { Penguin pororo = new Penguin(); pororo.name = "뽀로로"; pororo.habitat = ..
오버라이딩과 오버로딩오버라이딩(Overriding)정의서브 클래스가 슈퍼 클래스의 메서드를 재정의하는 것임.특징같은 메서드 이름을 가지면서, 슈퍼 클래스의 메서드의 구현을 서브 클래스에서 변경하여 사용합니다.예시슈퍼 클래스에printMessage() 메서드가 “hello” 를 출력한다면서브 클래스에서오버라이딩하여printMesssage() 메서드의 출력 문구를 변경하여 사용가능 ( 중괄호 안의 구현을 새롭게 가능 )오버로딩정의하나의 클래스에서 같은 이름의 메서드를 여러 개 정의하는 것을 의미특징메서드의 이름은 동일매개변수의 타입, 개수, 순서가 다를 수 있음.예시printMessage() 메서드를 오버로딩하여 하나는 인자 없이, 또 다른 하나는 문자열 인자를 받아 출력하도록 정의가능오버라이딩과 오버로딩의..
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.text.MessageFormat; import java.util.HashSet; import java.util.Objects; import java.util.Set; import java.util.StringTokenizer; /* ** * 터렛 * * * **/ public class Main { public static void main(String[] args) { try ( BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ) {..
OOP 관련 다른 서적들을 보면 상속은 is a 관계라고들 말한다.하지만 위의 단순한 설명만으로는 무리가 있다.상속과 is a 관계펭귄 is a 동물 주어 is a 보어주어는 하위 클래스 , 보어는 상위 클래스라고들 흔히 생각하지만,하위 클래스는 하나의 상위 클래스다 라는 논리가 성립하기가 힘듬.is a 가 클래스와 인스턴스is a 관계는 객체(클래스와 인스턴스) 와 클래스 의 관계로 자주 오해된다.객체 is a 클래스 ← 이게 말이 안된다.명확한 표현법상속 관계를 표현시에, is a 대신 is a kind of 를 사용하는 것이 더 명확한 표현이다.펭귄 is a kind of 동물 이라고 흔히들 표현된다!명확한 예시펭귄 is a kind of 동물 : 펭귄은 동물의 한 분류이다.고래 is a kind ..
package org.example.스택수열; import java.io.*; import java.text.MessageFormat; import java.util.Arrays; import java.util.Objects; import java.util.Stack; public class Main { public static void main(String[] args) { try ( BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out))) ) { int n = Integ..
클래스와 객체의 구분생물에게는 나이가 어떻게 되나요무생물에게는 제조일자가 어떻게 되나요?위 2가지 질문으로 클래스와 객체를 구분할수 있다는데..객체와 클래스 차이객체실제로 존재하는 유일무이한 실체특정한 속성에 값을 가지고 있음.클래스개념적인 분류 체계속성 자체에는 값을 가질 수 없다.예외 상황하지만..제리의 꼬리가 몇개?1개쥐의 꼬리는 몇개?1개미키마우스의 꼬리는 몇개?1개모두 답이 한 개이다.제리 와 미키마우스 는 객체이기에 꼬리 개수에 답이 존재하는 것이 당연하지만..쥐 는 클래스 인데도 꼬리 개수에 대한 답이 존재한다.이는 꼬리 개수가 객체의 속성이지만, 모든 객체가 동일한 값을 가지는 경우, 클래스에서도 해당 값을 알 수 있게 되기 때문이다. 그렇다면, 객체마다 모두 같은 값을 가진다고 확신한 순..