일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 국회의원 & 높으신 분들 어록
- https://minkwon4.tistory.com/161
- https://tecoble.techcourse.co.kr/post/2021-08-07-logback-tutorial/
- Today
- Total
목록java (56)
OPEN between Secret
class Person { String phone; public void setPhone(String phone) { this.phone= phone; } public String getPhone() { return phone; } } class Professor extends Person { public String getPhone() { // Person의 getPhone()을 오버라이딩함 return "Professor : " + super.getPhone(); // super.getPhone()은 Person의 getPhone()을 호출 } } public class Overriding { public static void main (String [] args) { Professor a = new..
class DObject { public DObject next; public DObject() { next = null; } public void draw () { System.out.println("Dobject draw"); } } class Line extends DObject { public void draw() { // 메소드 오버라이딩 System.out.println("Line"); } } class Rect extends DObject { public void draw() { // 메소드 오버라이딩 System.out.println("Rect"); } } class Circle extends DObject { public void draw() { System.out.println("Cir..
메소드 오버라이딩 (슈퍼 클래스 메소드 무시하기 ) 1) 슈퍼 클래스와 서브클래스의 메소드 사이에서 발생하는 것. 2) 슈퍼 클래스의 메소드를 동일한 이름으로 서브 클래스에서 재작성 하는것. |-> 즉 슈퍼클래스에서 선언된 메소드와 같은 이름, 같은 리턴 타입, 같은 매개 변수 리스트를 갖는 메소드를 서브 클래스에 만드는것. 3) 슈퍼 클래스의 메소드를 무시, 서브 클래스에서 오버라이딩된 메소드가 무조건 실행되도록 동적 바인딩이 된다. 4) 메소드 오버라이딩은 객체 지향적 프로그램에서는 꽃이라 할수있다. 재사용을 목적으로 상속받아 쓸때 슈퍼 클래스의 구현된 소스코드를 직접 수정하지 않고 오버라이딩을 통해 서브클래스에다가 내가 바꾸고 싶은대로 바꿔서 쓸수가 있기 때문에 * 메소드 오버라이딩 조건 -> 슈퍼..
class Person { } class Student extends Person { } class Researcher extends Person { } class Professor extends Researcher { } public class InstanceofExample { public static void main ( String [] args) { Person jee= new Student(); Person kim = new Professor(); Person lee = new Researcher(); if( jee instanceof Student) //jee는 Student 타입이므로 true System.out.println("jee는 Student 타입"); if( jee instanc..
상속 관계에 있는 서브 클래스와 슈퍼 클래스는 각자 생성자를 갖고 있는데 서브 클래스에서 인스턴스가 생성됬을시에 어떤 생성사들이 실행되는지 알아보는것 컴파일러는 서브 클래스의 생성자를 기준으로 슈퍼클래스의 적합한 생성자를 찾음 서브 클래스 슈퍼 클래스 1 기본생성자 --------> 기본생성자 2 기본생성자 --------> 매개변수를 가진 생성자 3 매개변수를 가진 생성자 -------> 기본생성자 4 매개변수를 가진 생성자 -------> 매개변수를 가진 생성자 !!! super()를 이용하면 명시적으로 슈퍼 클래스의 생성자를 호출할수가 있다. >>명시적으로 선택하지 않을시 컴파일러는 자동으로 기본생성자를 호출하기 때문
class Person { int age; public String name; protected int height; private int weight; public void setWeight(int weight) { this.weight = weight; } public int getWeight () { return weight; } } public class Student extends Person{ void set() { age = 30; name = "홍길동"; height = 175; setWeight(99); System.out.println(age ); System.out.println(name); System.out.println(height); System.out.println(getWe..
class Point { int x, y; //한 점을 구성하는 x,y 좌표 void set(int x, int y) { this.x = x; this.y = y; } void showPoint() { // 점의 좌표 출력 System.out.println("(" + x + "," + y + ")"); } } public class ColorPoint extends Point { //Point를 상속받은 ColorPoint 선언 String color; void setColor(String color) { this.color= color; } void showColorPoint(){ System.out.println(color); //컬러 점의 좌표 출력 showPoint(); //Point 클래스의 s..
final키워드가 사용될수 있는 곳은 세군데이다. 1. final 클래스 -> final을 클래스 앞에 사용하면 다른 클래스에서 상속받을 수 없음을 말해주는 것이다. 2. final 메소드 -> final을 메소드 앞에 붙이면 이 메소드는 오버라이딩(재정의) 될수가 없다는 것이다. -> 즉, 오버라이딩 못하게 하고 무조건 상속 받아 사용하도록 하고자 할때 쓰인다. 3.final 필드, 상수 정의 -> 상수를 정의할때 사용하는 방법이다. -> 상수 필드는 선언시에 초깃값을 지정하여야 한다.(한번 정의되면 값을 변경할수 없다.) -> final 키워드는 static과 함께 사용하여 프로그램 전체로 공유하여 사용할 수 있는 상수를 만들수 있다.
class CurrencyConverter { private static double rate; //한국 원화에 대한 환율 public static double toDollar(double won) { return won/rate; //한국 원하를 달러로 변환 } public static double toKWP(double dollar) { return dollar * rate; // 달러를 한국 원화로 변환 } public static void setRate(double r) { rate = r; } } public class StaticMember { public static void main(String [] args) { CurrencyConverter.setRate(1121); System.ou..
>>>클래스의 접근 지정자 접근 지정자를 생략하면은 default 접근 지정자로 자동 선언 되는되, 이 경우는 같은 패키지 내에 있는 클래스들만 접근이 가능하다. >>>멤버 접근 지정자 비공개를 의미함. -> 같은 클래스 내부 멤버에 의해서만 접근이 가능. 어떤 다른 클래스에서도 접근할수 없다. -> 동인 패키지내의 다른 클래스더라도 접근이 불가능하다. 3. protected 멤버 -> 보호된 공개를 의미함. -> 같은 패키지 내의 모든 클래스에서 접근이 가능. -> 다른 패키지의 클래스더라도 이 클래스를 상속받은 자식일 경우는 접근이 가능. 4. default 멤버 -> 접근 지정자 선언이 생략될 경우, default로 선언되었다고 함 -> 동인한 패키지 내에 있는 모든 클래스에서 접근가능. ex) c..