'분류 전체보기'에 해당되는 글 62건

  1. 2014.08.07 [JAVA] JAVA 4

[JAVA] JAVA 4

JAVA 2014. 8. 7. 21:41


[JAVA] JAVA 4

15. 다중 클래스
    : 하나의 파일에서 여러개의 클래스를 만들수 있음
      (단, public class는 하나만 존재, main()메소드가 있는 클래스에)
============================================================

16. 오브젝트(클래스) 배열
<형식>     클래스명 object명[] = new 클래스명[첨자];
                object명[0] = new 클래스명(인자,인자..);
============================================================

17. 상속(Inheritance)
    : 코드의 재사용 및 간결성을 위해
      기존의 클래스(Super, Parent)라하고 확장하여 새롭게 정의한 클래스를
     (Sub, Child)라 부른다.  다중상속 안됨
      ex)  class Parent
           {
           };
           class Child extends Parent   //extends(상속)
           {
           }
          (다중상속이 안됨, 저장파일 : main이 들어있는 클래스명과 동일)
============================================================

18. this예약어 
    : this예약어는 자신의 오브젝트를 가리키는 예약어
     ①자신의 오브젝트속에 존재하는 멤버변수를 가리킬때
         <형식> this.멤버변수   <--주로 매개변수이름과 동일할때 구별목적으로 사용
                this.메소드()
      ②생성자 내부에서 자신의 클래스의 또다른 생성자를 지칭하는 메소드
         <형식>  this(값);   
         ⓐ반드시 생성자속의 첫번째 문장으로 기재
         ⓑ자기자신클래스명 this   <---0번째 매개변수는 기재할수 없다
============================================================

19. 공유필드를 위한 static (this변수 없다)
      (1) static필드 :데이타 값의 공유를 위해 선언하는 공간(멤버필드만 가능)
          ①클래스이름으로 접근가능
          ②객체발생전 메모리할당
           <형식> 클래스명.멤버변수  or  객체명.멤버변수  
      (2) static 초기화영역
           <형식> static {   초기화구문;  }
      (3) static 메서드 : static필드를 컨트롤할 목적으로 쓰임
============================================================

20. final   
     ① final 필드 : 상수값이 저장될 공간으로 값이 변경될수없음
                           (지역변수, 멤버필드 모두 사용가능)
     ② final 메서드 : 상속시 오버라이딩 되지 않아야할 메서드 지정
                              (overriding하게되면 error발생)
============================================================

21. super의 사용 
     <-- 반드시 생성자속의 첫번째 문장으로 기재(1번만 기재)
     : 후손생성자속에서 선조생성자를 호출하면서 값을 올려줌
       super()  <--생략가능 / super(인자,인자...) / super.메소드()
============================================================

22. 접근지정자
(1)private : 하나의 클래스내에서만 사용가능한 멤버지정
(2)package(아무것도 기재하지 않음,default라고도 함)
    : 동일파일 + 동일폴더
(3)protected : 동일파일 + 동일폴더 + 상속
(4)public : 객체를 가진 모든 영역
public >  protected > default(생략) > private

                 같은패키지                       다른패키지
---------------------------------------------------------------
             같은클래스 |다른클래스 |  상속      클래스 | 상속
---------------------------------------------------------------
public           O           O         O          O      O
protected        O           O         O          X      O
default(생략)    O           O         O          X      X
private          O           X         X          X      X
===============================================================

23. 다형성(polymorphism)
     : super(부모)클래스와 sub(자식)클래스에 동일한 이름의 함수가
       존재(Overriding)할 경우 super클래스의 참조변수로 sub클래스의
       인스턴스를 참조할수 있다.
================================================================

24. abstract class (추상 클래스)
(1)추상클래스
  ①추상클래스(abstract class)란?
    : 클래스의 내용이 구현되지 않은 클래스로,즉 해당 클래스의 메소드중
      하나라도 구현되어 있지않고(=몸통이 없고) 메소드 이름만 가지고 있는
      클래스를 말한다.

   ②추상클래스를 사용하는 이유?
     - 객체 생성을 하지 못하도록 하기 위해서이다.
     - 하위클래스들이 특정메소드(추상메소드)를 반드시 구현하도록 강제할 수
       있도록 하기 위함이다(강제overriding)
     - 다형성을 위해 존재

   ③추상클래스 사용방법
      : abstract키워드를 사용한다.
     <형식>   abstract class 클래스 이름{
                   abstract 추상메소드이름
                   }
================================================================================

25. 인터페이스(Interface):다중상속가능
     : 자바는 단일상속만 지원하는데 이 단점을 보완하기 위해 나온 것으로
       추상클래스와 달리 모든 메소드가 추상메소드이다.
       사실, 인터페이스를 사용하는 가장 큰 목적은 다형성이다.

  (1) 인터페이스의 특징.
       - class 대신에 interface 키워드 사용.
       - 멤버변수는 상수로 선언.즉 final 키워드를 사용한다는 것이고
         변경할 수 없다(final은 생략가능.)
       - 멤버메소드는 몸통이 없음.즉 abstract메소드이고 모든 메소드가
         abstract이므로 생략가능.
       - 부모의 인터페이스를 상속받을시는 extends 대신 implements 키워드 사용.
   (2)인터페이스 형식
        public interface 인터페이스이름{
          ... //상수선언. 상수선언이라 함은 final 키워드를 쓰는것.
          ... // 이름뿐인 메소드 선언
        }

  |    클래스      |              메소드     |      멤버변수/로컬상수
----------------------------------------------------------------------------------------
final  |    상속불가       | 자식클래스에서 오버라이딩 불가 |변수값변경못함(즉,상수)
----------------------------------------------------------------------------------------
abstract |  추상클래스       |    추상메소드             |            O
----------------------------------------------------------------------------------------
static  |       X      |    객체생성없이 접근가능     | 객체생성없이 접근가능
----------------------------------------------------------------------------------------
public  | 모두 접근가능     |    모두 접근가능             |  모두 접근가능
----------------------------------------------------------------------------------------
protected|       X           |    같은패키지,상속시         | 같은패키지,상속시
private  |                   |    다른패키지/같은클래스     |  다른패키지/같은클래스
----------------------------------------------------------------------------------------
★ 자바에서 생략할수 있는 것
import java.lang.*;
default 생성자
this
메소드의 0번째 매개변수(반드시생략)
extends Object
super()
toString()   -->toString()메소드는 어떤 형식을
                String 오브젝트로 반환해주는 메소드입니다
======================================================================
26. 중첩(내부) 클래스 
(1)중첩 클래스 (Inner Class)
   ①클래스 내부에 또 다른 클래스를 가짐으로 클래스 관리의 효율을 높인 것
      (static 포함불가)
   ②중첩 클래스의 형식과 생성파일
      형식) class Outer { class Inner { … } }
      생성파일) Outer.class, Outer$Inner.class
   ③중첩 클래스 객체 생성
       Outer.Inner oi = new Outer().new Inner();  // or  객체명.new Inner();

(2)정적 중첩 클래스(Static Inner Class)
   ①중첩 클래스 내부에 static 멤버를 포함할 수 있는 형태
     (Outer의 non-static 멤버 포함 불가)
   ②정적 중첩 클래스의 형식과 생성파일
       형식) class Outer { static class Inner {…} }
       생성파일) Outer.class, Outer$Inner.class
   ③정적 중첩 클래스 객체 생성
       Outer.Inner oi = new Outer.Inner();

(3)지역 중첩 클래스(Local Inner Class)
    ①메서드 실행 시에 사용되는 클래스를 정의한 형식으로 static지정어를 가질 수 없다.
    ②지역 중첩 클래스의 형식 및 생성 파일
        형식) class Outer {
                       method() { class Inner { … } } }
        생성파일) Outer.class, Outer$숫자Inner.class
    ③객체 생성은 외부에서 할 수 없다.

(4)익명 중첩 클래스(Anonymous Inner Class)
    ①기존 클래스의 특정 메서드를 오버라이딩 하여 원하는 형태로 재정의 하여
        사용하는 방식( 외부 멤버 중 final만 포함할 수 있다)
    ②익명 중첩 클래스의 형식 및 생성파일
        형식) class Inner { … }
                 class Outer { method() { new Inner() {…}}}
        생성파일) Outer.class, Outer$숫자.class
     ③new Inner() 자체가 객체 생성임.

출처 : ITBANK 수업중..

'JAVA' 카테고리의 다른 글

[JAVA] JAVA 5  (0) 2014.08.08
[JAVA] JAVA 3  (0) 2014.08.04
[JAVA] JAVA 2  (0) 2014.08.03
[JAVA] JAVA 기본  (0) 2014.08.02
Posted by 은총애비!!
,