1. Collection Framework? 컬렉션 프레임웍이란 데이터군을 저장하는 클래스들을 표준화한 설계를 의미한다. 여기서 프레임웍이란 표준화된 프로그래밍 방식을 의미한다. 2. 컬렉션 프레임웍의 핵심 인터페이스 컬렉션 프레임웍의 핵심 인터페이스는 세가지가 존재한다. List : 순서가 있는 데이터 집합, 데이터 중복을 허용한다 (ArrayList, LinkedList, Vector, Stack) Set : 순서가 유지되지 않는 집합, 데이터 중복을 허용하지 않는다.(HashSet, TreeSet) Map : 키 - 값 쌍으로 이루어진 데이터 집합. 순서는 유지되지 않으며 키는 중복을 허용하지 않고, 값은 중복을 허용한다 주의할 것은 위 세가지 모두 '인터페이스'라는 것이다. 그리고 여기서 공통점이..
java
예외와 에러의 차이점 에러(Error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류. StackOverflow에러나 OutOfMemory오류와 같이 발생하면 복구가 불가능한 심각한 오류이다 예외(Exception) : 발생하더라도 수습이 되는 덜 심각한 오류. 예외는 발생하더라도 적절한 코드를 작성해 비정상적 종료를 막을 수 있다. 자바 예외 클래스 계층 구조 Exception클래스도 기본적으로 Object클래스의 자손클래스이다. 또한 예외 클래스는 두 그룹으로 나눌 수 있다 Exception클래스와 그 자손들(RuntimeException, 이의 자손 제외) : 사용자의 실수와 같은 외적인 요인에 의해 발생되는 예외를의미한다. 존재하지 않는 파일을 입력한다거나(FileNotFoundExcep..
다형성 다형성은 객체지향의 특징중 하나이다(객체지향의 특징 : 캡슐화, 다형성, 상속성, 동적바인딩, 추상화). 다형성이란, 여러가지 형태를 가질 수 있는 능력을 의미한다. 자바에서 다형성이란, 한 타입의 참조변수로 여러 타입 객체를 참조하는것을 의미한다. 좀 더 자세한 의미로는 조상클래스 타입의 참조변수로 자손타입 인스턴스를 참조할 수 있다. 아래코드를 예시로 들어보자 class tv{ private boolean power; private int channel; tv(int channel){ this.channel = channel; } public boolean getPower(){ return this.power; } public int getChannel(){ return this.channel..
제어자는 클래스, 변수 또는 메소드 선언부에 함께 사용하여 의미를 부여해주는 역할을 한다 크게 두가지로 나누어 진다. 접근제어자 : public, protected, default, private 일반 제어자 : static, final, abstract, native,synchronized,... 제어자는 클래스나 멤버변수, 메소드에 주로 사용되며, 하나의 대상에 대해 여러 제어자를 조합해 사용할 수 있다. 단 접근 제어자는 한번에 네가지 중 하나만 선택해 사용할 수 있다. 대표적인 일반 제어자 1. static : 멤버변수, 초기화블록 , 메소드 static은 클래스의, 공통적인 이라는 의미를 가지고 있다. 이는 클래스 변수 혹은 클래스 메소드를 선언할 때 사용한다. 그리고 한가지 더, 초기화 블록..
super은 자손 클래스에서 조상 클래스로부터 상속받은 멤버를 참조하는데 사용되는 참조변수이다. this가 자신이 속한 인스턴스를 가리키는 것처럼 super는 자신의 부모 클래스에 대한 참조를 하는 변수이다. super또한 static으로 선언된 클래스 변수 / 메소드에 대해서는 사용할 수 없으며 인스턴스 변수 / 메소드에 대해서만 사용이 가능하다. class Parent1{ int x = 20; int y = 30; } class Child1 extends Parent1{ int y = 10; void method(){ System.out.println("x = " + x); System.out.println("this.x = " + this.x); System.out.println("super.x =..
오버라이딩이란 조상클래스로 부터 상속받은 메소드의 내용을 변경하는것을 말한다. 상속받은 메소드를 사용하기도 하지만, 자손클래스에서 자손클래스의 용도에 맞게끔 변경해야하는 경우 사용된다. class Points{ protected int x; protected int y; String getLocation(){ String msg = "X : " + this.x + " Y : " + this.y; return msg; } } class Point3D extends Points{ protected int z; @Override String getLocation(){ String msg = "X : " + this.x + " Y : " + this.y + " Z : " + this.z; return msg; ..