본문 바로가기

전체 글

(46)
JAVA Collection API Collection 인터페이스 1. Collection API의 최 상위 계층의 인터페이스다. 2. Set, List, Heap 인터페이스의 부모 인터페이스. 3. 객체를 저장하고 삭제, 검색하는 여러가지 메소드를 제공한다. 4. Collection에 저장되는 객체들을 이반적으로 Element라고 부른다. 5. Collection 타입에 따라 Element의 중복을 허용하기도 하고 허용하지 않기도 한다. 6. Collection 타입에 따라 입력된 순서를 관리할 수도 있다. 7. add, remove, size, isEmpty, contains, iterator 등의 메소드를 제공한다. Set 인터페이스 ( LinkedList, ArrayList ) 1. Element 의 중복을 허용하지 않는다. 2. ..
JAVA String 과 StringBuffer String객체는 변경이 불가능한 immutable 객체이다. String클래스의 메소드를 이용해서 문자열을 바꾼느 것은 문자열 내용이 바뀐것이 아니라 새로운 객체가 생성된 것이라고 생각하면 된다. 문자열을 계속 바꾸게 된다면 그만큼 쓸모없는 객체가 많아진다는 것이기 때문에 시스템의 과부화를 불러올 수 있다. String Class의 유용한 method 1. length() String string = "abcde"; int len = string.length; // len에는 5가 입력된다. 2. charAt() Stirng string = "abcde"; char a = string.charAt(3); // a에는 d가 입력된다. 0번지 부터 시작해서 3번지의 위치는 d 3. substring() S..
JAVA 중첩클래스 ( Nested Class ) 1. 중첩 클래스는 클래스 내부에 또 다른 클래스를 정의하는 것이다. 2. 클래스의 맴버 위치에 정의할 수도 있고, 로컬 변수처럼 메소드 바디에 정의할수 있다. 메소드 바디에 정의된 클래스를 로컬 클래스라고 부른다. 3. 로컬클래스는 final 변수만 엑세스할 수 있다. 4. 중첩클래스는 독립 객체 형태로 존재할 수 없다. ex) 일반 중첩 클래스 public class A { private a; class B { public void c() { a++; // 아웃터클래스의 맴버를 자유롭게 접근할 수 있다. } } void aa() { } } 객체생성 방법 A outer = new A(); A.B b = outer.new B(); d반드시 바깥 클래스의 객체를 생성한 뒤 안쪽 클래스의 객체를 생성할 수 ..
JAVA 추상메소드 & 인터페이스 * 추상메소드 & 추상클레스 메소드의 선언부만 있고, 구현부는 없는 메소드를 의미한다. abstract 키워드를 선언부에 추가하여 추상메소드를 저정한다. 주로 오버라이딩 하여 사용하는 메소드이다. 오버라이딩 하기 때문에 당연히 final, static 키워드는 사용불가. abstract public void setItem(); 이렇게 선언한다. 추상메소드가 하나라도 있는 클레스를 추상클래스라고 부른다. abtract class buildings {} 이렇게 선언한다. 추상클레스는 반드시 추상클래스만 가지는 것이 아니라 일반 콘크리트 메소드도 가질 수 있다. 추상클래스를 이용해서 객체를 생성할 수 없다. 예를들면, vehicle 이라는 클래스를 추상클래스로 하여 자동차 , 배 , 비행기 클래스 등이 상속하..
JAVA main() 메소드가 public static인 이유. public static void main(String[] args) 1. main 메소드가 static 접근 지정자인 이유 main 메소드가 포함되어 있는 클레스의 객체 생성과는 상관없이 JVM이 프로그램을 시작할 때 가장 처음 수행하는 부분이기 때문에 static으로 지정해서 무조건 실행할 수 있도록 하기 위함이다. 2. public 인 이유 비슷한 개념으로 클래스가 어느 위치에 있건 JVM이 접근 가능하도록 하기 위해서 pulic 접근지정자로 해야한다 .
JAVA Wrapper 클레스 , static 키워드 자바에서는 객체지향적인 개발이 이루어 지기 때문에 기본 Primitive 데이터들을 ( int, char 등 ) 객체로 바꾸어 주는 클래스를 제공하는데 그것을 Wrapper 라고 부른다. Ex ) int number = 100; => Interger n = new Integer(number); 반대로 객체를 기본 데이터로 바꾸는 방법은 Ex ) int number = n.intValue(); 라는 메소드를 사용한다. primitive data type Wrapper class boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double * static 키워드는 객체 생성없이 클레스의 이..
JAVA 다형성에 관해.. 다형성은 다양한 타입의 레퍼런스 변수가 동일한 형태의 객체를 참조할 수 있다는 의미. 부모의 객체가 자식의 클레스 형태객체를 참조하는 방식 등을 말한다. class Parent class Childen extends Parent 의 두 가지 클레스가 있을 때. Children c = new Children(); 라고 선언하지만, Parent p = new Children(); 와 같이 사용도 가능하다. 다른 타입의 레퍼런스 변수가 동일한 객체를 참조하고 있다. * Virtual Method Invocation은 상속관계에서 오버라이딩된 동일한 이름의 method가 충돌했을 때 실행타임 시점의 메소드가 컴파일 타임 시점의 메소드보다 우선적으로 실행된다. Ex) Parent의 getName()을 Childr..
JAVA 잡다한 정리. 1. super 와 super()의 차이 super는 부모 객체의 레퍼런스 값을 가지고 있는 키워드이고, super() 부모 객체의 생성자 호출을 의미한다. super는 자식 클레스의 생성자 함수 군현부의 맨 첫 줄에 작성되어야 한다. ( WHY? SUN 마음이겠지 ) * this와 this() 도 마찬가지로 this는 객체 레퍼런스, this()는 자신의 생성자 호출 키워드로 사용된다. ( this()역시 생성자 맨 첫 줄에 작성되어야 하기 때문에 super()와 동시에 사용 되는것은 불가능하다 ) 2. 상속에서 메소드 오버라이딩 접근지정자 리턴형 메소드이름 ( argument ) throws 예외처리 {} 인 경우 접근지정자는 더 넓은 범위로만 변경가능, 리턴형, 메소드이름, argument는 변경 ..