본문 바로가기

Language/Java10

LinkedList 배열의 장단점을 알아보겠습니다. 장점 배열은 구조가 간단하고 데이터를 읽는 데 걸리는 접근 시간이 짧습니다. 첫번째 요소를 읽는 접근시간와 마지막 요소를 읽는 접근시간이 동일합니다. 단점 크기를 변경할 수 없습니다. 따라서 더 큰 배열을 생성 후 기존 내용을 복사한 뒤 참조 변경을 해야합니다. 크기 변경을 피하기위해 처음부터 큰 배열을 생성하면 저장공간은 넉넉하겠지만 메모리가 낭비됩니다. 또 하나의 단점으로는 비순차적인(중간에) 데이터의 추가, 삭제 시 시간이 많이 걸립니다. (추가, 삭제 한 부분에 채워야 되기 때문에 다른 데이터를 옮겨야하기 때문입니다.) 하지만 맨 끝에 추가, 삭제하는 것은 시간이 별로 안걸립니다. (순차적 삭제는 빠름) 정리해보자면 배열은 크기 변경이 불가하고 추가, 삭제 시 시간.. 2021. 12. 18.
객체지향프로그래밍2 상속 - 기존의 클래스로 새로운 클래스를 작성하는 것(코드의 재사용) - 두 클래스를 부모와 자식으로 관계를 맺어주는 것 - 자손은 조상의 모든 멤버를 상속받는다(생성자, 초기화블럭 제외) - 자손의 멤버개수는 조상보다 같거나 많다 - 자손의 변경은 조상에 영향을 미치지 않는다. - 조상의 변경은 자손의 변경에 영향을 미친다. (cannot be reslved or is not a field) 포함관계 클래스 간 관계 결정 상속관계 : A는 B이다. (is) 포함관계 : A는 B를 가지고 있다. (has) 오버라이딩 내용(구현부, {})만 변경가능하고, 선언부는 변경불가 System.out.println(p.toString()); System.out.println(p); 는 같은 표현이다. 오버라이딩 조.. 2021. 10. 26.
객체지향프로그래밍1-2 생성자 this - 생성자에서 다른 생성자 호출할 때 - 다른 생성자 호출 시 첫 줄에서만 사용가능 참조변수 this - 같은 클래스 안에서는 생략가능(단, lv와 이름이 같을 경우 생략X) - 생성자와 인스턴스 메서드에서만 사용가능 - static메서드(클래스메서드)에서는 사용불가(iv사용불가이기때문에) 변수의 초기화 - 지역변수(lv)는 수동초기화해야함 - 멤버변수(iv, cv)는 자동초기화됨(기본적으로 0으로 초기화됨) 멤버변수의 초기화 1. 명시적 초기화(=) : 선언시 대입연산자를 이용하여 초기화. 간단한 초기화 방법 참조형 변수는 객체를 만들어서 null값이 아닌, 값을 넣어줘야한다. 2. 초기화 블럭 : 복잡한 초기화, 여러 문장 넣을 때 - 인스턴스 초기화 블럭 : {} - 클래스 초기화 .. 2021. 10. 26.
[Java] 클래스의 정의 클래스 1. 설계도 2. 클래스 == 데이터 + 함수 3. 사용자정의타입 : 원하는 타입을 직접 만들 수 있음. 1. 변수 : 하나의 데이터를 저장할 수 있는 공간 2. 배열 :같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간 3. 구조체 : 서로 관련된 다른 종류의 데이터를 저장할 수 있는 공간 4. 클래스 : 서로 관련된 데이터와 함수의 결합(구조체 + 함수) 2021. 1. 14.