○Package

 ▷여러 Sub-packages들과 classes, interfaces를 포함하는 group

 ▷Directory와 유사함.

 ▷같은 이름의 Class/sub-package라도 Package가 다르면 허용됨. -> 이름 충돌을 피하기 위해 사용됨.

 

 ▶선언

  ▷package 키워드를 통해 해당 Class가 속해있는 package를 정의함.

  ▷선언하지 않으면 default package에 속하게 됨.

 

 ▶사용

  ▷같은 Package의 Class는 별도의 선언 없이 Access 가능함.

   ▷public, package의 visibility인 경우

  ▷다른 Package의 Class는 import 키워드를 통해 Class를 넣어야 Access 가능함.

   ▷각각 import하거나, *를 통해 해당 Package내의 모든 Class를 import 가능함.

   ▷public class만 다른 Package에서 Access 가능함.

 

 ▶Sub-package

  ▷Package는 또 다른 Package를 포함할 수 있음

  ▷.을 통해 접근함 (Package.subPackage.Class

 

 ▶Package Hierarchy

  ▷Package들은 Directory 구조에 저장됨.

  ▷Package는 Directory와 같은 구조를 지녀야 함

 

 ▶static import

  ▷클래스에 대한 인스턴스 생성 없이 static 메서드/필드를 사용 가능

 

'컴퓨터 언어 > java' 카테고리의 다른 글

Interface  (0) 2020.11.16
Inheritance  (0) 2020.11.14
Inner class  (0) 2020.11.11
Generic  (0) 2020.11.11
Java Documentation Comments  (0) 2020.11.10

○Inner class

 ▷class 내부에서 정의된 다른 class

 ▷내부에서만 사용되는 class인경우 사용

 

 ▶Ordinary Inner class

  ▷일반적인 Innner class

  ▷private, public등 정의 가능

  ▷자신을 감싼 Class의 private에 바로 접근 가능 (outer의 reference를 가짐)

 

 ▶Local Inner class

  ▷Inner class가 method 내부에 정의된 것.

  ▷자신을 감싼 Class의 private에 바로 접근 가능 (outer의 reference를 가짐)

  ▷method의 final인 local variable / argument에 접근 가능

 

 ▶Anonymous Inner Class

  ▷Local Inner class를 이름 없이 정의 가능

  ▷Class의 선언과 객체의 생성을 동시에 한다.

  ▷부모 클래스 / 구현하는 인터페이스의 이름을 사용해서 정의한다.

 

  ▶Lambda Expression 이용

   ▷( ) 안에 매개변수

   ▷-> { } 안에 함수 Body

'컴퓨터 언어 > java' 카테고리의 다른 글

Inheritance  (0) 2020.11.14
Package  (0) 2020.11.13
Generic  (0) 2020.11.11
Java Documentation Comments  (0) 2020.11.10
Modifier  (0) 2020.11.10

●Generic

 ▷Type parameter를 받아 다양한 객체에 대해 적용가능하도록 한 것.

 ▷C++의 Template과 유사함

 

 ▶Type 제한

  ▶extends 

   ▷~의 자식 오브젝트이다.

   ▷<T extends comparable<T>> : comparable<T> interface를 구현한 요소들만 올 수 있다.

    ▷comparable<T> : compareTo(obj)를 가짐. (비교를 위한 메소드)

   ▷<T extends 

 

  ▶super

   ▷~의 부모 오브젝트이다.

 

 ▶wildcard (<?>)

  ▷어떤 타입이든 올 수 있다.

  ▷extends, super을 통해 조정 가능하다.

  ▷Type parameter가 의미있게 사용되지 않는 경우 (타입인자를 받거나 변환하지 않음)

 

 

○Generic Class

 ▶선언

  ▷class명 뒤에 Type parameter를 받음 (<>)

  ▷여러 개의 Type parameter를 받을 수 있음

  ▷Type parameter을 이용하여 메소드, 필드를 선언 가능

 

 ▶객체 생성

  ▷원하는 타입을 <>안에 넣음

 

○Generic method

 ▷일반적인 Class내의 method에서도 Type parameter를 받을 수 있다.

'컴퓨터 언어 > java' 카테고리의 다른 글

Package  (0) 2020.11.13
Inner class  (0) 2020.11.11
Java Documentation Comments  (0) 2020.11.10
Modifier  (0) 2020.11.10
Method  (0) 2020.11.10

○Java Documentation Comment

 ▷프로그램에 대한 정보를 나타내는 프로그램 내부의 코멘트

 ▷프로그램의 서류화

 ▷javadoc을 통해 HTML문서로 만들 수 있음/

 

 ▶java 주석처리

  ▷/* comments */

  ▷// line comment

  ▷/** Java documentation comment **/

 

 

 ▶Javadoc Tags

 

 ▶Doclet

  ▷Javadoc의 출력을 커스터마이징 가능하다.

 

'컴퓨터 언어 > java' 카테고리의 다른 글

Inner class  (0) 2020.11.11
Generic  (0) 2020.11.11
Modifier  (0) 2020.11.10
Method  (0) 2020.11.10
Class  (0) 2020.11.10

○Modifier

 ▶접근 제어자

  ▷내부 field/method에 대한 접근 가능여부

  ▷class/field/method 앞에 붙임.

  ▷class는 public/default만 사용가능

  ▶종류

   ▷public: 외부, 다른 패키지에서도 접근 가능.

   ▷protected: 동일 패키지, 상속 받은 클래스에서 접근 가능

   ▷default: 동일 패키지 내에서 접근 가능

   ▷private: 자기 클래스에서만 접근 가능

 ※Information Hiding

  ▷private field에 get/set[Name]을 통해 접근한다.

 

 ▶Static

  ▷모든 객체에서 공유하는 요소

  ▷객체명이 아닌 Class명으로 접근한다.

  ▷Static 메소드는 Static field만 접근 가능하고, Static 메소드만 호출 가능하다.

  ▷Static 요소 초기화: Static initialize block

 

 ▶Final

  ▷한번 초기화되면 바꿀 수 없는 요소

 

 ※Constant

  ▷주로 static final을 사용한다.

 

'컴퓨터 언어 > java' 카테고리의 다른 글

Generic  (0) 2020.11.11
Java Documentation Comments  (0) 2020.11.10
Method  (0) 2020.11.10
Class  (0) 2020.11.10
enum  (0) 2020.11.10

+ Recent posts