본문 바로가기

분류 전체보기

(1196)
다차원 배열 2차원 배열 int[][] arr = new int[]][]{{1,2,3},{4,5,6}}; arr.length 는 행의 개수 2 arr[0].length 는 열의 개수 3 =>1차원 배열 취급.
깊은 복사 & 얕은 복사. 카피를 해주면 한쪽을 바꿨을때 나머지도 바뀜. => 얕은 복사 인스턴스가 새로 생긴게 아니고 주소를 복사한거라서 한쪽이 참조해서 바꿔주면 나머지도 같은 주소를 참조하므로 같이 바뀜. System.arraycopy(); 인스턴스를 구분지으므로 한쪽이 변경된다고 해서 나머지가 바뀌진 않음. => 깊은 복사 배열 인덱스당 하나하나 인스턴스를 생성 해 준 다음에 get set함수로 진짜 데이터 값을 넣어서 복사 해 주어야함.
기본형 배열 & 참조형 배열 int[] arr = new int[10]; arr = {1,2,3}; 또는 생성과 동시에 초기화 int[] arr = new int[]{1,2,3}; int[] arr ={1,2,3}; 하지만 int[] arr; arr ={1,2,3} 불가능. 기본자료형 선언만 했을 땐 0 들어가고, 참조자료형 (객체) 선언만 했을 때 null 들어감. System.arraycopy(arr1,0,arr2,1,3) =>arr1의 0번째에서 3개를 arr2의 1번째부터 복사 Book copyLibrary = new Book(); for(Book book :copyLibrary) { } 타입을 쓰고 변수하나 지정해주고 그 옆에 참조할 배열을 지정해주면 그 배열을 전부 돌면서 하나하나를 book에 넣겠다는 의미.
static method static 변수 설정시 staic메모리에 생김. static변수는 클래스 이름으로 참조해서 사용. static method = class method static method 는 instance 생성 상관 없이 생성됨. 따라서 static method 안에서 instance 변수를 사용 X 인스턴스 method안에서는 static변수 사용 가능. -> 인스턴스 method는 new 됐을 때 생성되는 건데 이때 static이 생성되지 않을리가 없기 때문에 but static이 생성되었다 해도 new가 호출되지 않을 수 도 있으므로 사용 불가
Static & Singleton Company 인스턴스를 하나만 만들고 싶으면 생성자를 private으로 선언하고 getinstance라는 함수를 만들어 주는데 public static으로 만들어서 인스턴스 생성없이도 호출 가능하도록 만들고, 그 안에는 Company class 내부에서 private 생성자로 만든 인스턴스를 반환하도록 한다. 그러면 다른 클래스에서 만들때는 Company company = Company.getinstnace() 이렇게 new를 사용하지 않고 만들게 되고 몇개를 만들던지 같은 인스턴스를 참조함. =>한 클래스 파일 내에서 다른 걸 만들어 봐야 같은 인스턴스를 가져옴. Singleton이라고 함. public class Company { private static Company instance = new ..
백준 9935번 문자열 폭발 문제 상근이는 문자열에 폭발 문자열을 심어 놓았다. 폭발 문자열이 폭발하면 그 문자는 문자열에서 사라지며, 남은 문자열은 합쳐지게 된다. 폭발은 다음과 같은 과정으로 진행된다. 문자열이 폭발 문자열을 포함하고 있는 경우에, 모든 폭발 문자열이 폭발하게 된다. 남은 문자열을 순서대로 이어 붙여 새로운 문자열을 만든다. 새로 생긴 문자열에 폭발 문자열이 포함되어 있을 수도 있다. 폭발은 폭발 문자열이 문자열에 없을 때까지 계속된다. 상근이는 모든 폭발이 끝난 후에 어떤 문자열이 남는지 구해보려고 한다. 남아있는 문자가 없는 경우가 있다. 이때는 "FRULA"를 출력한다. 폭발 문자열은 같은 문자를 두 개 이상 포함하지 않는다. 입력 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,00..
자바 연습 (생성자 , 정보은닉 , 객체 협력) public class MyDate { private boolean valid = true; private int day; private int month; private int year; public int getDay() { return day; } public void setDay(int day) { if(day > 31 || day 12 || month 3000 || year
this 응용 public Person(String name, int age) { this.name = name; this.age = age; } 이렇게 있을 때, public Person() { this("임현준",20); } 이렇게 this 사용해서 자기 생성자 호출 가능. this가 생성자를 호출 할 때 first statement여야 함 this위로 어떤 문장이 들어가서는 안됨. 인스턴스를 복사하고 싶으면 this를 return하는 함수를 class 내부에서 만들어서 다른 인스턴스에 자신의 this로 초기화 시키면됨.