목록Java/Mega (99)
코드 그라데이션
동등성 비교 어떤 상황에서 동등성 비교가 필요할 수밖에 없을까? 일치여부는 == 동일성 비교로 그냥 정리할 수 있는 것 아닌가? 일단 == 비교는 물리적으로 위치가 완전히 똑같은지를 비교하는 것. new가 두 번 되었으면 이 두개는 절대로 == 일 수가 없다. => 객체가 매번 생성되는 상황에서는 객체간에 == 비교를 하면 항상 실패한다는 이야기. ex. 데이터베이스 어느날 이 주문을 조회할 일이 필요해졌다고 치면, 데이터베이스의 row를 읽어서 애플리케이션으로 가져와야죠. 가져오는 역할을 하는 중간단계의 누군가가 있을 것인데, 얘가 하는 역할이 row를 읽어서 row와 매핑될 수 있게 new order를 만든다! => 이 말은, 똑같은 정보라고 하더라도 읽을 때마다 매번 new가 필요하다는 뜻. 어쩔 ..
함수를 볼 때는 인자로 들어오는 건 사용자가 나에게 주는 거고, 리턴하는 건 내가 사용자에게 넘기는 것이다. 물 배열을 그냥 30개로 만들었다면, Water02[] w = new Water02[30]; int maxW = 0; Water02[] wArray = new Water02[10]; for (int j = 0; j
예시코드 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타입으로 선언했으나, 이것이 ..
예시코드 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)+..
선생님 코드 package mega.backend_onemore.Day27.Prac27; // 스타크래프트 문제 /* 나머지 클래스 Unit을 추상클래스로 하고, 여기에 필드 초기화, 생성자에 필드들 다 때려박음 print() 도 추상 메서드로 구현해놓음. 저글링 클래스는 유닛 클래스를 상속받고, 생성자에 super() 안에 값 다 때려 박음. print 메서드 여기서 구현 // 히드라 클래스, 마린 클래스 모두 동일함. [테란 클래스] 1. 마린 3마리 객체 배열 2. 공격 순서를 위한 턴 만들기 3. 공격을 당하는 기능 4. 공격을 하는 기능 5. 공격을 당한 후에 에너지가 0이면 null로 변경하는 기능 6. 게임 종료를 알려주는 기능 [저그 클래스] 1. 저글링 / 히드라 만들기 -> 배열 / 생..