목록dev-log/java (15)
오식랜드
다형성 다양한 형태가 존재한다는 의미 프로그램을 유연하게, 단순하게 만들어 준다 업 캐스팅 super class와 그 클래스를 상속받은 sub class 들이 있을 때, sub class를 super class형 참조변수로 저장 Object : 모든 class의 super class이므로, 모든 객체에 사용 가능 다만, super class에는 존재하지 않고, sub class에서 추가된 멤버는 사용이 불가능하다 SuperObject sub1 = new SubObject(); SuperObject sub2 = (SuperObject) (new SubObject); sub1.subClassMethod(); --> err! sub1.superClassMethod(); --> ok Object sub3 = n..
상속 : 특정 클래스가 가지는 일부 속성/행위를 다른 클래스에게 제공하기 위해 맺는 관계 기존 클래스의 멤버를 그대로 이용 가능 새로운 멤버 추가 가능 기존 클래스의 멤버를 수정하여 사용하기 가능 ⇒ 코드의 재사용 용이 (오류 최소화 / 유지보수 용이 / 개발 시간 단축) 예시 대학생 집단 + 고등학생 집당 ⇒ “학생” 이라는 공통점 ⇒ “학생” 클래스(공통적인 내용을 담는 클래스) 생성 후 대학생/고등학생에 상속 ⇒ 대학생 / 고등학생 각각에 필요한 정보를 담는 멤버변수는 각자 선언 (대학생 → 전공 등 / 고등학생 → 학년, 반 등) IS-A / HAS-A 관계 IS-A : 상속 ~ 중 하나 “대학생”은 “학생” 중 하나 HAS-A : 포함 ~ 을 갖는 클래스 간 연관성이 낮아 상속으로 표현하지 않음..
참조자료형 참조 변수 선언 후 배열 객체를 동적으로 생성하여 할당한다 배열의 이름 = 배열 객체의 참조값 배열의 각 요소에 요소 타입에 해당하는 객체 할당이 필요하다 배열 선언 실제 배열 객체의 생성 X 참조 변수만 생성 ex) int[] list / int list[] 배열 생성 new 연산자 사용하여 생성 각 요소들을 위한 메모리가 할당된다 ex) list = new int[5] : 정수형 5개 짜리 배열 생성 배열 선택 일반 변수처럼 조작 가능 배열 요소는 첨자(index)를 사용하여 참조 0부터 시작 ex) list[0] = 90 : list의 첫 번째 요소에 90 할당 배열 크기 length를 통하여 배열의 크기 반환 ex) list.length ⇒ 5 배열 초기화 배열 선언 시 중괄호{ } 를..
java.util.Random : 난수를 생성하는 메서드 제공 nextInt() : 가능한 정수 값 범위에 있는 난수 반환 nextInt(int n) : 0 ~ (n-1) 사이의 정수형 난수 반환 nextInt(6) : 0~5 사이 난수 반환 nextInt(6) + 1 : 1~6 사이 난수 반환 nextFloat() : 0.0 이상 0.1 미만 사이의 실수형 난수 반환
패키지의 필요성 서로 관련 있는 클래스를 분류하여 관리 또는 접근을 용이하게 한다. 기능은 다르나 이름은 같은 클래스가 존재할 경우, 패키지로 구분 가능해진다. 호출 시에도 패키지 명이 앞에 붙어 구분에 용이하다 패키지 계층적으로 구성 계층 구분은 도트(.) 패키지 별 접근 제한 가능 서로 다른 패키지에 동일한 이름의 클래스 사용 가능 ex) java.util.Scanner : java.util = 패키지 명 / Scanner = 클래스 명 모듈 (Module) 여러 패키지, 이미지 등의 자원을 모아놓은 컨테이너 모듈 > 패키지 > 클래스 구조 메모리 활용에 효율적 jmods 폴더에 자바 모듈이 존재 주요 모듈과 패키지 java.base 모듈 java.lang 패키지 명 없이 사용 가능 문자열, 수학, ..
생성자 객체가 생성될 때 자동으로 호출되는 일종의 메서드 객체의 멤버 변수를 초기화한다 명시적으로 따로 호출하지 않는다 생성자 구현 조건 생성자 이름 = 클래스 이름 반환 자료형 지정 X (void도 명시하지 않는다) 생성자 종류 default 생성자 생성자를 정의하지 않은 경우 인자가 없음 매개변수를 가지는 생성자 객체를 생성할 때 객체가 가질 멤버 변수의 초기 값을 인자로 전달받음 객체 생성과 초기화 작업이 한번에 수행 생성자 오버로딩 매개변수의 종류나 수가 다른 생성자를 여러 번 선언할 수 있다 this : 같은 클래스 내에서 인자가 일치하는 생성자를 호출 int myNum; String myName; myObject(int n){ myNum = n; } myObject(String s){ myNa..