현실에서 상속은 부모가 자식에게 물려주는 행위를 말한다. JAVA에서도 부모클래스(상위클래스)의 필드와 메소드를 자식클래스(하위클래스)가 상속받아 자신의 것처람 사용할 수 있다. 상속의 방법은 클래스 선언시 다음과 같이 extends를 사용하면된다.class 자식클래스 extends 부모클래스하나의 부모클래스는 여러개의 자식클래스를 가질수있지만 자식클래스는 하나의 부모클래스만 가질수 있다. (즉 자식클래스는 여러개의 클래스를 상속받지 못한다)자식클래스는 부모클래스가 될수있다. (A클래스를 상속받은 B클래스를 다시 C라는 클래스가 상속받은경우 C는 A의자원까지 사용할 수있다)상속으로 모든 필드와 메소드를 물려받는것이 아니라 private 접근제한을가진 자원은 제외된다.그렇다면 자바에서 상속은 왜 사용할까?..
접근제한 다른패키지 클래스 같은 패키지 클래스 자식 클래스 본인 클래스 public O O O O protected X O O O default X O X O private X X X O 클래스, 필드, 생성자, 메소드에 접근제한자를 사용하여 접근할 수 있는 범위를 정할 수 있다.public은 외부 클래스에서 자유롭게 접근, 사용 할 수 있다.protected는 같은 패지키내 클래스나 자식클래스에서만 사용 할 수 있다.default는 접근제한자를 적용하지 않았을때 말그대로 default로 적용되는 제한자이다. 사용은 같은 패키지내에 있는 클래스에서만 사용 할 수 있다.private는 외부클래스에서 접근할 수 가없고 클래스 내부에서만 사용할 수 있다. //default 접근 제한 class ClassNam..
클래스를 만들어 놓으면 해당클래스로 여러개의 객체를 생성하여 사용할 수 있다. 클래스의 구조public class ClassName { int FildName; //필드 public className() { //생성자 } public void methodName(){ //메소드 } } 필드객체의 데이터를 저장하는 곳으로 변수라고 생각하면된다. 생성자new 연산자로 해당 클래스를 객체로 만들때 호출되어 객체 생성시 초기화를 담당한다.생성자는 { } 안에서 필드를 초기화하거나 메소드를 호출하거나 한다.생성자는 클래스 이름과 동일하며, 리턴값이 없다.생성자는 오버로딩하여 여러개를 만들수 있다.클래스에 생성자를 코딩해놓지 않으면 컴파일러는 자동으로 Default 생성자(매개변수가 없는 생성자)를 추가시킨다.단 ..
같은 타입의 변수를 여러개를 묶어서 사용하기 위해 배열을 사용한다. 배열 또한 여러개 묶어서 배열로 사용할 수 있다. 이것이 바로 2차원 배열이다. 2차원 배열은 배열들을 배열형태로 가지고 있는 것을 말한다. 스택에있는 배열 변수는 힙영역의 배열의 첫번째 인덱스의 주소값을 가지고 있고 힙영역에있는 배열의 인덱스들은 다시한번 각각의 인덱스별 배열에대한 주소를 가지고 있다. 2차원 배열의 생성과 사용타입[ ]는 배열을 의미하지만 배열안에 배열이기때문에 타입[ ][ ]으로 사용한다. int[][] Array = new int[3][2]; // 2차원 배열의 선언 Array[0] = 3; // 오류!! Array[0][2] = 3;Array[ ]에는 int형 자료가 들어있는것이 아니라 int형 배열이 들어있기때..
배열은 같은 타입의 데이터를 연속된 공간에 나열시키고, 각 데이터에 인덱스(index)를 부여해 놓은 자료구조이다. 배열의 특징같은 타입의 데이터만 저장할 수 있다.한번 생성된 배열은 길이를 늘리거나 줄일 수 없다.인덱스는 0부터 시작한다.배열은 참조 타입이기때문에 스택영역에서 배열변수는 힙영역에 있는 배열의 첫인덱스(0)의 주소값을 가지고 있다. 배열의 선언 타입[ ] 변수; 타입 변수[ ]; ※ 배열은 참조 타입 이라서 null값으로 선언이 가능하다. 배열의 생성 타입[ ] 변수 = { 값0, 값1, 값2, 값3}; //값을 넣으면서 생성하는 방법 타입[ ] 변수 = new 타입[배열크기]; // 크기만 지정해서 생성하는 방법 이미 생성된 배열에 { }를 이용한 생성(수정)은 허용되지 않는다. 첫 생..
참조 타입의 종류는 배열, 열거, 클래스, 인터페이스가 있다.int, char같은 기본 타입 변수는 스택(Stack) 영역에 직접 값을 갖고 있지만, 참조 타입 변수는 스택 영역에서 값이 아니라 힙 영역(Heap)의 주소값을 가진다. (참조 타입의 실제 값은 힙영역에 생성된다!) 참조 변수의 비교 연산(==, !=)비교 연산은 기본 타입 변수의 경우 변수의 값이 같은지 아닌지 비교하지만, 참조 타입 변수의 경우 같은 객체를 참조하는지 아닌지 비교하게된다. null참조 타입의 변수는 힙 영역의 객체를 참조하지 않는 뜻으로 null값을 가질 수 있다. 이경우 스택 영역에는 변수는 생성하지만 힙 영역에는 객체를 생성하지 않는다.null을 가지고 있는 참조변수를 사용할경우 NullPointerExcepton 오..