본문 바로가기
Java

[Advanced JAVA] Java 기본 구조

by 루에 2014. 12. 12.
반응형

용어정리

 

클래스(Class)

실행 시 오브젝트에 관한 소스 코드

객체(Object)

클래스의 실체. instance라고도 한다.

속성(Attribute)

객체의 데이터. Data Field라고도 한다. Data member, instance variable이라고도 한다.

메서드(Method)

 객체의 행위. algorithm, function, procedure라고도 한다.

패키지(Package)

클래스 또는 하위 패키지를 그룹화 한 것

 

 

Source File Layout

 

[<package_declaration>]

 

[<import_declatation>]

 

<class_declaration>

 

 

Naming Conventions

 

Classes

첫글자를 대문자로 작성. 그리고 명사 사용.

 

Methods

기본적으로 동사 사용. 맨 첫단어는 소문자로 시작, 두 단어 이상의 연결일 경우 첫글자 대문자로 단어 구분.

 

Variables

소문자로 시작. 단어의 연결일 경우 첫글자 대문자로 단어 구분.

 

Constants

모든 글자를 대문자로 작성. 두 단어 이상의 연결일 경우 언더바(_)로 연결.

 

 

Interfaces

  • 클래스의 public interface란 client code와 서비스를 제공하는 클래스 사이의 규약
  • 자바의 interface는 이러한 규약에 대한 메소드 구현 없이 선언만 되어 있다.
  • 아무 관계가 없는 많은 클래스들이 같은 인터페이스를 구현할 수 있다.
  • 하나의 클래스는 여러가지 interface를 구현할 수 있다.

     

    Uses of interface

    • 클래스의 실제 내용을 보이지 않고 프로그래밍 인터페이스만 공개하고자 할 때 사용한다.
    • 억지로 두 클래스간에 관계를 강요할 필요 없이 관련 없는 두 개의 클래스에 공통점을 잡을 때 사용한다.
    • 몇 개의 인터페이스를 구현한 클래스를 선언함으로써 다중상속의 효과를 거두고자 할 때 사용한다.

     

    Interface 정의 및 사용

     

    interface Bicycle{

    void changeCadence(int newValue);

    void changeGear(int newValue);

    .

    .

    .

    }

     

    class ACMEBicycle implements Bicycle{

    // remainder of this class

    // implemented as before

    }

     

     

    annotation

    • 코드의 로직과는 관계 없이, metadata를 정의하기 위한 것.
    • 대표적 annotation - @Override(오버라이딩한 함수), @Deprecated(앞으로 사용하지 않을 기능), @SuppressWarnings 등
    • @Retention - SOURCE(컴파일 과정에서 제거), CLASS(코드를 로딩한 뒤 제거), RUNTIME(로딩한 뒤에도 남겨놓음)

     

    annotation target

     

     

    Default Constructor

    • 하나의 클래스에는 적어도 하나 이상의 생성자가 필요하다.

    • 별도의 생성자가 정의 되지 않으면 default constructor가 자동으로 생성되어 사용된다.

    • default constructor는 new Xxx() 해서 객체를 생성할 수 있게 한다.

    반응형

    댓글