분류 전체보기 (1196) 썸네일형 리스트형 down casting & instanceof 다운캐스팅 -> 업캐스팅 하면 하위 클래스만 가지고 있는 메서드나 변수들은 사용 불가능하고 상위 클래스의 메서드를 오버라이딩 한것만 사용 가능하므로 하위 클래스의 특징을 살리고 싶으면 다운 캐스팅 해줘야 함. hAnimal을 하위 클래스 Human 생성자로 인스턴스 생성했을 때, 다운 캐스팅은 Human에 대해서만 해야 함. Human human =(Human) hAnimal; 근데 컴파일에는 다른 하위클래스에 대해서도 Eagle human =(Eagle) hAnimal; 이 컴파일은 됨. 하지만 오류는 뜸 따라서 각 케이스를 분석 하기 위해서는 instanceof사용. if (hAnimal instanceof Human) { } 맞으면 true return; 따라서 instanceof 사용하는게 안정적. 다형성 , 형 변환 다형성 -> 하나의 코드가 여러 자료형으로 구현되서 실행되는 것. 다형성을 이용하면 상위 클래스를 상속받은 하위 클래스 여럿이 상위클래스의 동일한 메소드를 오버라이딩 했다면, 예를 들어 human , tiger ,eagle이 Animal을 상속 받고 Animal의 메소드 move를 각각 override했다면 public void animalmove (Animal animal) { animal.move(); } Animal h = new human() Animal t = new tiger() Animal e = new eagle() 하고 저 매개변수에 h,t,e를 각각 넣어 주는 것으로 다른 move를 호출 가능. 다형성을 사용하지 않는다면 각각의 타입으로 각각의 함수를 만들어야 함. 묵시적 형변환 Cus.. up casting & override 상위 클래스를 하위클래스의 생성자로 생성하는 경우 묵시적으로 이루어짐. 하위 클래스의 타입은 상위 클래스의 타입으로 형변환 가능 -> 업캐스팅 but 역은 성립 안됨. 상위 클래스로 형변환 되면 하위 클래스의 메소드나 변수는 상위클래스의 메소드만 보임. Customer vc = new VIPCustomer(); 한 경우에 vc에게는 Customer의 메소드만 보이지만 vc.calcPrice(1000); 실행시 실행되는것은 VIPCustomer의 calcPrice이다. 상위클래스의 메소드가 하위클래스에서 필요한 내용과 맞지 않는 경우 재정의 가능 ->오버라이딩. 오버로딩 -> 메소드 이름은 같은데 매개변수 포맷이 다른거. @Override -> 컴파일러에게 오버라이드 된 메소드라는 것을 보여줌 이때 상위 .. 상속 상속시 protected로 접근권한 세팅. 상위 클래스의 멤버 변수 및 메소드를 전부 사용 가능한데, 그냥 자기것처럼 쓰면 됨. protected는 클래스에서 만 접근 가능한게 아니고, 하위 클래스의 인스턴스라면 그냥 public처럼 접근 가능. 하위 클래스는 상위클래스가 먼저 생성된 후에 생성됨. 하위 클래스는 생성자에 아무것도 안써주면 super() 가 자동으로 호출 됨. ->default 생성자를 호출 하지만 상위 클래스가 기본 생성자가 없고 매개변수로만 받는 생성자만 존재 한다면 super()도 그 매개변수 타입에 맞도록 명시해서 직접 호출해 줘야함. this () 자신의 기본 생성자 호출 super () 상위 클래스 기본 생성자 호출 삼성 SW 역량테스트 5658. 보물상자 비밀번호 출처 https://swexpertacademy.com/main/solvingProblem/solvingProblem.do 중요한 점은 STL 사용시 iterator를 사용한다면 end() 참조시에 그 값은 공백이라는 점. 마지막 내용을 참조하고 싶으면 it = de.end(); 후에 *(it) 가 아니고 *(--it)를 사용해야 한다. 그리고 스트링을 int로 바꾸는 방법은 algorithm 헤더 선언 후에 atoi(str.c_str())이거지만 그냥 char형을 int로 바꾸는 방법은 char ch; 에서 ch-'0' 해주면 된다. #include #include #include #include #include #include #include using namespace std; int N,K; in.. 삼성 SW 역량테스트 3752. 가능한 시험 점수 출처 https://swexpertacademy.com/main/solvingProblem/solvingProblem.do union find도 인덱스 0,1이 유니온 되고 0,2 가 유니온 되면 0,1,2 가 유니온 되지 못하므로 해답이 아님. 하나의 인덱스에 해당하는 배열값에 대해 먼저 기록 되고 그 다음 인덱스에 해당하는 배열이 그 기록을 참조하여 새로운 값을 만들어 기록하고 그 다음 인덱스 배열 값이 또 그 기록을 참조하여 기록하면 자신을 중복하지 않고 여러개의 같은 인덱스가 중복되지 않는다. 백준의 소수의 곱 문제와는 다른 case! #include using namespace std; int arr[101]; bool visit[101]; bool total[10001]; void init().. 자바 연습 (static 객체) public class Company { private int id; private static int serial = 10001; private static Company instance = new Company(); public static Company getInstance() { return instance; } public Card createCard() { Card card = new Card(serial++); return card; } private Company() { } } ---- public class Card { private int cardnum; public Card(int serial) { cardnum = serial; } public int getCardNumber() {.. 자바 연습 (Array List) ArrayList의 사이즈는 length가 아닌 size ArrayList list = new ArrayList(); list.get(0); =>첫번째 스트링을 꺼내옴. remove(index); 인덱스의 부분 반환. ArrayList에서 삭제됨. public class Book { private String name; public Book(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } } public class Student { private String name; ArrayList list = new ArrayLis.. 이전 1 ··· 127 128 129 130 131 132 133 ··· 150 다음