예시코드 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 = new A[10]; listA[0] = new C(); listA[1] = new D(); listA[2] = new B(); // listA[2].b = 10; //..

업캐스팅과 다운캐스팅 예시 public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double num = sc.nextInt(); } } 이거 에러 나지 않는다. => 큰 그릇에 작은 애를 담았으므로 upCasting => 암묵적 캐스팅 하지만 public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); double numA = sc.nextInt(); int numB = numA; // 에러 } } 이건 에러. => 우리(개발자)는 double타입으로 선언했으나, 이것이 ..
클래스 배열을 쓰는 이유 일반 배열을 쓰게 되면 모든 원소를 일일이 개수만큼 담아줘야하는데, 배열이 필드의 개수만큼 필요하다 예를 들면 컴퓨터를 담으려면 컴퓨터가 종류, cpu, 가격으로 이루어졌다면 배열 3개를 만들어야 하는데, 그냥 "컴퓨터가 가지고 있는 정보"라는 공통점이 있고, 그래서 컴퓨터라는 클래스 속성 하나로 퉁쳐서 만들어버리는 편리함을 얻을 수 있다. 이제부터는 배열의 필드를 따로 담는게 아니라, 클래스째로 담아버리면 얘네들을 따로 들고다닐 필요가 없어짐. 필드에서는 선언과 동시에 초기화만 가능. 코드를 쓰는 것은 함수 안에다가 해야 생성자도 함수라는 것을 간과하지 말자. 그리고, Integer, String 같이 자료형을 반환하기 위한 데이터 타입이 있는데, 클래스 반환형도 클래스 자체가..
예시코드 package Day23; class Z{ String str; Z(String str){ this.str = str; } } class A{ int k; String str; A(int a){ this.k = a; } A(String str, int k){ } void print() { System.out.println("A"); } } class B extends A{ int k; String str; B(){ super(5); } void changeString() { super.k = 5; // 부모꺼 this.k = 10; // 내꺼 } } public class TestSuper { public static void main(String[] args) { // TODO Auto-gen..
파일 입출력 - 일단 우선적으로 콘솔 입출력과 비교해야함. - 입력과 출력의 기준 => 컴퓨터 콘솔 출력 : 컴퓨터 -> 콘솔 콘솔 입력 : 콘솔 -> 컴퓨터 파일 입력 : 컴퓨터 기준으로 컴퓨터가 읽는 것. 파일 출력 : 컴퓨터 기준으로 컴퓨터가 파일에게 내보내는 것. package Day28; import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; public class FileWirterTest { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub Scanner sc = new Scanner(..

1. public class MapTest1 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); Random r = new Random(); System.out.print("보 바위 가위 선택하세요 : "); int user = sc.nextInt(); int com = r.nextInt(3); // 0~2 HashMap comMap = new HashMap(); comMap.put(0,"보"); comMap.put(1,"바위"); comMap.put(2,"가위"); System.out.println("User : " + comMap.get(user)+..