
배열의 단점 -> 1. 같은 자료형만 담을 수 있음(이를 해소하는 게 클래스) 2. 개수가 제한됨 - 객체가 생성될 때 클래스 안에 있는 자료형이 선택이 됩니다 내가 B를 만들려는 순간에 자료형이 세팅이 되어 바뀐다는 뜻. 단, 참조자료형만 됩니다. 기본자료형 X 결론은 안에 클래스밖에 안 된다는 뜻! 제네릭 예제 class Box { T vol; void setVolume(T vol) { this.vol = vol; } T getVolume() { return vol; } } public class GenericTest { public static void main(String[] args) { Box ibox = new Box(); ibox.setVolume(200); //ibox.setVolume(..

퀴즈 속담 퀴즈 프로그램을 작성하시오. (파일명: Prac22.java) 조건 - 퀴즈 내용은 saying.txt 라는 이름의 파일로 제공. - 퀴즈는 문제와 정답이 각각 한줄로 구성 (퀴즈 3개인 경우 총 6줄). - 사용자로부터 값을 입력받아 정답 여부 확인. - 오답인 경우 정답 안내 . 퀴즈 내용이 더 이상 없을때까지 반복 퀴즈 파일 (saying.txt) 예시 실행결과 힌트 주석 내용 // 속담 퀴즈입니다. 빈 칸에 알맞은 말을 입력하시오. (주관식) // ------------------------------------------------ // (문제) 세 살 __ 여든까지 간다 // 정답 입력 => 버릇 // 정답입니다!!! // // (문제) 소 잃고 ___ 고친다 // 정답 입력 => ..
_01.Input (입력) package Prac22; import java.util.Scanner; public class _01_Input { public static void main(String[] args) { // 사용자 입력 Scanner sc = new Scanner(System.in); System.out.print("이름을 입력하세요 : "); String name = sc.next(); System.out.print("혈액형을 입력하세요 : "); String bloodType = sc.next(); System.out.print("키를 입력하세요 : "); int height = Integer.parseInt(sc.next()); // int height = sc.nextInt();..

final - 값을 변경할 수 없는 것. ex.) public [final] int max = 20; max = 30; (에러) 변수/ 메소드/ 클래스 에 사용가능하다 변수 final - 값을 변경 할 수 없다. 메소드 final - 오버라이딩 일때 사용 불가능 클래스 final - 상속 불가 사용 예시 final class T1 { } class T2 extends T1 { // T1 이 final이라 상속 불가능 } class T3 { final void abc() { } } class T4 extends T3 { //void abc() // final => 오버라이딩 불가능 } public class FinalTest { public static void main(String[] args) { //..
인터페이스 => 추상화의 끝판왕 interface 와 interface 끼리 상속이 가능하나, 반드시 class 가 재정의 해야한다. 약속을 표현하기 위한 특별한 형태의 클래스 인터페이스는 객체를 생성할 수 없음 생성자를 갖지 않는다 인터페이스의 메서드는 abstract 키워드를 붙이지 않더라도 기본이 추상메서드 Java 8에서 default method가 등장하여 인터페이스도 구현을 가진 메서드를 가질 수 있음 인터페이스의 메서드는 public 키워드를 붙이지 않더라도 기본이 public static 메서드를 가질 수 있음(Java 8~) 인스턴스 필드를 정의할 수 없음 인터페이스는 스펙인데 필드는 구현에 대한 세부내용이므로 필드를 가질 수 없다 형태 interface A{ 상수 추상메소드 void a..
추상화 일상에서의 사용 예시 말을 추상적으로 이야기한다. 현실적이지 않은 것을 현실적인 것 마냥 말한다. 즉, 실체는 없지만 뭔가 구상은 있는 것을 추상화라고 합니다. 추상화가 나온이유? => 메소드 오버라이딩 때문 메서드에서 사용하는 예시 void abc(){ System.out.println(“a”); } void abc(); ------------------------------------------------------------------------ "추상화 되어있는 메소드가 있다" 추상화 된 메소드를 가지고 있다는 것은 객체화를 할 수 없다는 말. 추상화 되어 있는 메서드를 가질 수 있는 것 1. abstract class 2. interface 특히 중요한 것. 추상화가 있으면 필수적으로 상..
참조자료형 형변환 예제 package mega.backend_onemore.Day24; class A{ int a; } class B extends A{ int b; } class C extends A{ int c; } class D extends A{ int d; } public class ClassCastingTest1 { public static void main(String[] args) { A a = new B(); //업캐스팅 B b = (B)a; // 다운캐스팅 B[] listB = new B[10]; C[] listC = new C[10]; D[] listD = new D[10]; // 이렇게 세 번 수고할 필요가 없이 // 아래처럼 한방에 만들고 집어넣으면 된다! A[] listA = n..

참조자료형 형변환 - 상속이 있어야 할 수 있습니다. - 부모는 자식을 모른다는 걸 명심해야 한다. 객체는 자식, 자료형은 부모 이렇게 이렇게 만든다. 예시 Class C { int a; } Class D extends C{ int b; } C c = new D(); // 업 캐스팅 D d = (D)c; // 다운 캐스팅 보는 방법은, 변수 자료형 타입(기준)으로 보면 된다. D로 만들고 C로 갔다. => 내가 볼 수 있는 건 C밖에 없다. 그 말은 C일 때 int b가 안 보인다는 것. 다시 D로 다운캐스팅 해주면? int b가 보인다. 즉, 부모 입장에서는 부모에 있는 것만 보이는 것이고, 자식은 부모 것도 다 가지고 있으니까, 전부 보인다. 왜 쓰는가? 이러한 관계가 있다고 가정했을 때, Class..