분류 전체보기 (1196) 썸네일형 리스트형 제너릭 프로그래밍 제너릭 프로그래밍 =: 템플릿 프로그래밍. 제너릭 클래스 public class Generic { private T material; } 1) 제너릭 타입만 정해진다고 new가 되는 것이 아니고 해당 타입으로 정해준 후에 set을 해줘야 함 2) 제너릭 클래스 타입을 한정짓고 싶으면 상위 클래스를 만들어서 그것을 상속하는 클래스들만 타입으로 할 수 있도록 설정함. 3) 상위 클래스를 추상클래스로 만들고 추상메소드를 만들면 상위 클래스를 상속받는 클래스들이 구현하게 되므로 그 클래스들을 제너릭 타입으로 쓰는 클래스에서는 해당 타입 객체 인스턴스를 이용해서 여러 함수를 사용가능. public class Generic { //T로 들어올 수 있는 객체중에 Material을 상속받은 객체만 들어올 수 있음. p.. Collection 인터페이스 Collection 인터페이스 하나의 객체 Map 인터페이스 key와 value로 이뤄진 객체 Hash -> 검색을 위한 자료구조 key를 바탕으로 index를 찾음 String 객체 String str1 = new String("abc"); ->힙 메모리 String str2 = "abc"; ->상수 풀 따라서 String str1 = new String("abc"); String str2 = new String("abc"); str1 == str2 하면 false String str1 = "abc"; String str2 = "abc"; str1 == str2 하면 true + 연결시에 새로운 메모리로 생성됨 일반 클래스 객체와 String 클래스 객체의 출력이 일반 클래스 객체는 주소값이 출력되는데 반해 String 객체는 내용물이 출력되는 이유는 두 객체 전부 객체가 출력될 때 toString()이 호출 되는데 String은 내용을 일반 클래스는 주소를 출력하도록 구현 되어 있.. [S/W 문제해결 응용] 2일차 - 최대 상금 문체 출처 https://swexpertacademy.com/main/solvingProblem/solvingProblem.do BFS도 우선순위 큐도 전부 안됐던 문제 최대가 7개 정답까지 였다. 시간 초과를 해결 하기 위한 방법으로 DFS를 써야 했는데 결국 swap이 일어나야 하는데 아이디어로 전부 어떤 규칙에 대해서 한번에 커지는 방향만으로 가는 것은 불가능 하고, 결국 DFS 혹은 BFS로 모든 케이스를 다 찾아봐야 하는 문제였다. 우선 i,j 인덱스를 스왑을 하고 그 상태로 재귀한다. 그리고 다시 원상복구 한다. 재귀 상태는 i,j가 스왑된 상태로 끝까지 진행되고 인덱스 i,j 가 스왑된 후에 발생되는 모든 케이스에 대해 전부 탐색한다. 그때 만약 num만큼 스왑을 완료 했을 때의 string.. Clone 메소드 clone() 객체 복사본 만듬. private마저 복사함. 은닉 위배 Book book2 = (Book)book.clone(); clone은 Object로 반환되므로 Book으로 명시 해줌. Book이 clone 사용하려면 class Book implements Cloneable{ } 이렇게 명시 해 줘야 함. equals ,hashCode 메소드 equals() 재정의를 통해 어떤 경우에 같은 것인지 설정 해 줄 수 있음. equals의 매개변수가 Object이므로 instanceof로 해당 객체가 원하는 객체 타입인지 조사 후에 다운캐스팅 해서 자신의 멤버 변수와 매개변수의 멤버 변수가 같은지 어떤지 비교 가능. @Override public boolean equals(Object obj) { if(obj instanceof Student) { Student std = (Student)obj; if(this.name == std.name && this.studentnum == std.studentnum) return true; else return false; } return false;} hashCode() 메서드 인스턴스가 저장된 가상머신의.. Object 클래스 Object 클래스는 모든 클래스의 최상위 클래스이고 암묵적으로 모든 클래스는 Object클래스를 extends하고 있음. 모든 Object 클래시는 일부 메소드(final) 제외하고 재정의로 사용 가능. java.lang.Object -> import 안해도 자동 import됨. String 클래스 안에 toString()이 정의되어 있음. Book book = new Book(); System.out.println(book); 하면 클래스와 메모리 주소가 나오는데, String str = new String("토지") System.out.println(str); 하면 str의 내용이 나옴. 이거는 str.toString()이 실행되기 때문이고 String 은 Object클래스에 정의 되어 있으므로 t.. 자바 연습 (equals, hashCode) public class Date { public int month; public int day; public int year; public Date(int a, int b, int c) { this.year = a; this.month = b; this.day = c; } @Override public boolean equals(Object obj) { Date temp = (Date)obj; if(this.day == temp.day && this.year == temp.year && this.month == temp.month) return true; return false;} @Override public int hashCode() { return day+month*year; } } class M{.. 이전 1 ··· 125 126 127 128 129 130 131 ··· 150 다음