목록전체 글 (163)
Frog is cry
패키지1 package day22.ex02; public class A { protected String field; protected A() { } protected void method() { } } package day22.ex02; public class B { public void method() { A a = new A(); a.field = "value"; a.method(); } } 패키지2 package day22.ex02_2; import day22.ex02.A; /* C 클래스는 A 클래스와 다른 패키지에 있다. * default 접근제한과 마찬가지로 C 클래스의 생성자와 메소드에서는 * A 클래스의 protected 필드, 생성자, 메소드에 접근할 수 없다. */ public cla..
package day22.ex01_final; public class Car { //필드 public int speed; //메소드 public void speedUp() { speed += 1; } // public final void stop() {// final 메소드로 선언함 System.out.println("차를 멈춤"); } } package day22.ex01_final; public class SportsCar extends Car{ @Override public void speedUp() { speed += 10; } // 부모 클래스의 stop()의 메소드가 final이므로 오버라이딩 불가 //public void stop() { //System.out.println("스포츠카를 멈춤..
package day21.ex04_Override; public class Airplane { public void land() { System.out.println("착륙합니다."); } public void fly() { System.out.println("일반비행합니다."); } public void takeoff() { System.out.println("이륙합니다."); } } package day21.ex04_Override; public class SupersonicAirplane extends Airplane{ public static final int NORMAL = 1; public static final int SUPERSONIC = 2; public int flyMode = NORM..
package day21.ex02_super; public class Student extends People{ public int studentNo; // 아래는 자식 클래스의 명시적 생성자임 public Student(String name, String ssn, int StudentNo) { super(name, ssn); this.studentNo = StudentNo; } } package day21.ex02_super; public class Student_Ex { public static void main(String[] args) { Student std = new Student("홍길동", "123456-1234567", 1); System.out.println("name : " + std..
package day21.ex01_extends; public class CellPhone { //필드 String model; String color; //생성자 없음 //메소드 void powerOn() {System.out.println("전원을 켭니다.");} void powerOff() {System.out.println("전원을 끕니다.");} void bell() {System.out.println("벨이 울립니다..");} void sendVoice(String message) {System.out.println("자기 :" + message);} void receiveVoice(String message) {System.out.println("상대 :" + message);} void h..
인터페이스와 추상클래스의 차이를 알아보자 ! 설명 : 클래스는 크게 일반 클래스와 추상 클래스로 나뉘는데 추상 클래스는 클래스 내 '추상 메소드'가 하나 이상 포함되거나 abstract로 정의된 경우를 뜻한다. 반면 인터페이스는 모든 메소드가 추상 메소드인 경우입니다. ★★★★★ (JAVA8 에서는 defalt 키워드로 일반 메소드의 구현도 가능) 추상 클래스와 인터페이스는 상속받는 클래스 혹은 구현하는 인터페이스 안에 있는 추상 메소드를 구현하도록 강제한다. Q&A : 둘 다 추상 메소드를 구현하는 일을 하는데 굳이 왜 둘다 필요한지? 우선 인터페이스와 추상 클래스는 존재 목적이 다름. 1. 추상 클래스는 그 추상 클래스를 상속받아서 기능을 이용하고, 확장시키는데 있음. 2. 인터페이스는 함수의 껍데기..
오버로딩 package day20.ex05; public class Printer { void println(int a) { System.out.println(a); } void println(boolean a) { System.out.println(a); } void println(double a) { System.out.println(a); } void println(String a) { System.out.println(a); } } package day20.ex05; public class Printer_Ex { public static void main(String[] args) { Printer printer = new Printer(); printer.println(10); printer.p..
package day20.ex04_getter_setter; public class Account { private int balance; public static final int MIMI_BAL = 0; public static final int MAXI_BAL = 1000000; public int getBalance() {// 게터 메소드를 이용해서 필드에 있는 값을 가져오는 역할을함 // 이 메소드를 호출하면 현재 balance필드에 저장된 값을 읽기참조할 수 있습니다. return balance; } public void setBalance(int balance) {// 세터 메소드 // 이 메소드를 매개변수값과 함께 호출하면 // 매개변수의 값이 요구사항에 적합한 값인지 필터링(사전검사)하여..