본문 바로가기

분류 전체보기

(518)
그냥 알아두면 좋은 개념 1.멤버변수는 자동 초기화되므로 초기화하지 않고도 값을 참조할 수 있다. 2.지역변수는 사용하기 전에 반드시 초기화해야 한다 4.명시적 초기화를 제일 우선적으로 고려해야 한다. 1. 기본값-명시적초기화-초기화블럭-생성자-> 초기화 순서 (클래스변수의 초기화시점 : 클래스가 처음 로딩될 때 단 한번 초기화 된다. 인스턴스변수의 초기화시점 : 인스턴스가 생성될 때마다 각 인스턴스별로 초기화가 이루어진다. 클래스변수의 초기화순서 : 기본값 → 명시적초기화 → 클래스 초기화 블럭 인스턴스변수의 초기화순서 : 기본값 → 명시적초기화 → 인스턴스 초기화 블럭 → 생성자) 5.힙(heap)영역에는 인스턴스(인스턴스변수)가 생성되는 영역이며, 지역변수는 호출스택(call stack)에 생성된다 6. 추상클래스와 인터페..
DTO 기본형 package dto; //Data Transfer Object 의 기본형 //=Value Object public class Human { private int number;//선수번호 = 주민번호->중복 없음 = sequence number private String name; private int age; private double height; public Human() { // TODO Auto-generated constructor stub } //Human 오버로드 public Human(int number, String name, int age, double height) { super(); this.number = number; this.name = name; this.age = age;..
로봇, 배열별 메서드를 다른 메서드에서 if로 나눠담아 실행 Object[] arr = { new DanceRobot(), new SingRobot(), new DrawRobot() }; for (int i = 0; i < arr.length; i++) { action(arr[i]); } } public static void action(Object obj) { if(obj instanceof DanceRobot) { ((DanceRobot)obj).dance(); } else if(obj instanceof SingRobot) { SingRobot s = (SingRobot)obj; s.sing(); } else if(obj instanceof DrawRobot) { DrawRobot d = (DrawRobot)obj; d.draw(); } } } //class..
Robot 로봇 action함수를 작성해보는 문제 최상위 클래스인 Object[] arr 를 통해 나머지 로봇들을 다뤘다. -> for문으로 action[ i ]안에 배열을 나눠담고 -> action함수에서 if문을 사용해 받은 매개변수를 나누어 class실행을 다르게 설정했다 public class mainClass { public static void main(String[] args) { /* Robot[] arr = { new DanceRobot(), new SingRobot(), new DrawRobot() }; for(int i=0; i< arr.length;i++) action(arr[i]); */ Object[] arr = { new DanceRobot(), new SingRobot(), new DrawR..
스타크래프트 ( Me) 입력받아 실행 될 수 있게 만들던중이고 class의 형변환을 시켰다 public class main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("작동시킬 아이를 선택해 주세요 : 1.Marine 2.Tank 3.Dropship"); int u_num = sc.nextInt(); Unit u1 = new Marine(); Unit u2 = new Tank(); Unit u3 = new Dropship(); Marine m = (Marine)u1;//*Class의 형변환 Tank t = (Tank)u2;//*Class의 형변환 Dropship ds = (Dropship)u3;..
스타크래프트 (정답) public class mainClass { public static void main(String[] args) { // TODO Auto-generated method stub /* Marine m = new Marine(); Tank t = new Tank(); DropShip d = new DropShip(); */ Unit unit[] = new Unit[3]; unit[0] = new Marine(); unit[1] = new DropShip(); unit[2] = new Tank(); unit[0].move(100, 100); unit[1].move(200, 300); unit[2].move(250, 400); unit[0].stop(); unit[1].stop(); unit[2].stop(..
final Class 요점 정리로는 변수에는 final을 붙이면 상수가 됨(대입용) 해당 변수는 대문자로 쓰는 경우가 흔함 클래스에는 final을 class에 붙이면 상속 금지 메소드에는 final을 method에 붙이면 오버라이딩을 할 수 없음 public class mainClass { public static void main(String[] args) { //final : 제약 /* 변수, 메소드, 클래스 */ final int number = 10; // 변수-> final을 붙이면 상수가 됨(대입용) final int MEMBER_NUMBER = 100;//대문자로 쓰는 경우가 흔함 int num; num = number; //대입용 num = MEMBER_NUMBER; // number = 2; 에러.number..
class 기초순서 문제 답이 x=200인 이유는 c.getX()->Child의 Child()->super()생략;적용->Parent()->Parent(200)->getX()->x의 return값 이기 때문이다 public static void main(String[] args) { Child c = new Child(); System.out.println("x="+c.getX()); //me : x=1000 //답 : x=200 } ------------------------------------------------- public class Parent { int x=100; Parent() { this(200);//2 } Parent(int x) { this.x = x;//1 } int getX() { return x; }..