본문 바로가기
반응형

혼공자68

자바(Java) - 패키지와 접근 제한자3 (Getter & Setter 메소드) 객체 지향 프로그래밍에서는 객체의 필드를 객체 외부에서 직접적으로 접근하는 것을 막는다. 그 이유는, 외부에서 마음대로 변경할 경우 객체의 무결성(결점이 없는 성질)이 깨질 수 있기 때문이다. 그래서 클래스를 작성할때 조건이 없다면 모든 필드는 private으로 선언한다. Setter 메소드 외부의 값을 받아 필드의 값을 변경하는 것이 목적이다. 매개값을 검증해서 유효한 값만 객체의 필드로 저장할 수 있다. 'set필드'는 외부에 값을 받아 필드에 저장 void setSpeed(double speed){ //검증 코드 if(speed 2020. 10. 20.
자바(Java) - 패키지와 접근 제한자2 (접근 제한자) 접근 제한자 클래스와 인터페이스 및 다른 패키지에서 사용하지 못하도록 접근 제한하여 접근 제한자를 사용한다. 접근 제한자 종류 pulbic 접근 제한자: 외부 클래스가 자유롭게 사용할 수 있도록 함 protected 접근 제한자: 같은 패키지 또는 자식 클래스에서 사용할 수 있도록함 private 접근 제한자: 외부에서 사용할 수 없도록 함 default 접근 제한자: 같은 패키지에 소속된 클래스에서만 사용할 수 있도록 함 클래스 접근 제한 같은 패키지 내에서만 사용할 것인지 다른 패키지 내에서도 사용할 수 있도록 할 것인지 결정한다. //default 접근 제한 class 클래스 { ... } //pulbic 접근 제한 public class 클래스 { ... } default 접근 제한 클래스 선언시.. 2020. 10. 20.
자바(Java) - 패키지와 접근 제한자1 (패키지선언 & import문) 자바에서는 클래스를 체계적으로 고나리하기 위해 패키지(package)를 사용한다. 패키지를 선언하는 방법과 패키지 간의 접근을 위한 접근 제한자에 대해 이야기 해보려 한다. 패키지 패키지의 물리적인 형태는 파일 시스템의 폴더 이다. 패키지는 클래스의 일부분으로, 클래스를 유일하게 만들어주는 식별자 역할을 한다. 클래스 이름이 동일하더라도 패키지가 다르면 다른 클래스로 인식한다. 클래스의 전체 이름은 '패키지 이름+클래스 이름'으로 표현 com.mycompany.A com.yourcompany.B 패키지 선언 클래스 작성 시 해당 클래스가 어떤 패키지에 속할 것인지를 선언하는 것 package 상위패키지.하위패키지; public class ClassName { ... } 패키지 이름 규칙 숫자로 시작 불가.. 2020. 10. 19.
자바(Java) - 인스턴스 멤버와 정적 멤버3 (싱글톤 & final필드, 상수) 싱글톤(Singleton) 전체 프로그램에서 단 하나의 객체만 만들도록 보장하는 코딩 기법이다. 싱글톤 작성 방법 클래스 외부에서 new연산자를 통해 생성자 호출하는 것을 불가하도록 private 접근 제한자를 붙여서 사용한다. 자신의 타입인 정적 필드 선언 후 자신의 객체 생성해 초기화한다 외부에서 호출할 수 있는 getInstance()를 선언하고 정적 필드에서 참조하고 있는 자신의 객체를 린턴한다. public class 클래스{ //정적 필드 private static 클래스 singleton = new 클래스(); //생성자 private 클래스(){ } //정적 메소드 static 클래스 getInstance() { return singleton; } } 외부에서 객체를 얻는 유일한 방법은 g.. 2020. 10. 16.
자바(Java) - 인스턴스 멤버와 정적 멤버2 (정적 멤버 & static) 정적(static) 멤버 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 말한다 정적 멤버 선언 정적 필드와 정적 메소드 선언은 선언시 static을 추가적으로 작성하면 된다. public class 클래스{ //정적 필드 static 타입 필드 [=초기값]; //정적 메소드 static 리턴 타입 메소드 (매개변수 선언, ...){ ...} } 정적 필드와 정적 메소드는 클래스에 고정된 멤버이므로 클래스 로더가 클래스(바이트코드)를 로딩해서 메소드 메모리 영역에 저장할 때 클래스별로 관리 된다. 그래서 클래스 로딩이 끝나면 바로 사용할 수 있다. 정적 멤버 사용 크래스 이름과 함께 도트(.) 연산자로 접근한다. 클래스.필드; 클래스.메소드(매개값, ... ); 예시1) C.. 2020. 10. 15.
자바(Java) - 인스턴스 멤버와 정적 멤버1 (인스턴스멤버 & this) 클래스에 선언된 필드와 메소드가 모두 객체 내부에 포함되는 것은 아니다. 객체가 있어야 사용가능한 멤버가 있고, 객체가 없어도 사용가능한 멤버가 있다. 인스턴스 멤버 객체 마다 가지고 있는 멤버 인스턴스 필드: 힙 영역에 객체마다 가지고 있는 멤버, 객체마다 다른 데이터를 저장 인스턴스 메소드: 객체가 있어야 호출가능한 메소드 클래스 코드(메소드 영역)에 위치하지만, 이해하기 쉽도록 객체 마다 가지고 있는 메소드라고 생각해도 된다. 정적 멤버 객체와 상관없는 멤버, 클래스 코드(메소드 영역)에 위치 정적 필드 및 상수: 객체 없이 클래스만으로도 사용 가능한 필드 정적 메소드: 객체가 없이 클래스만으로도 호출 가능한 메소드 클래스 내부의 다른 메소드에서 호출할 경우에는 단순히 메소드 이름으로 호출이 가능하.. 2020. 10. 15.
728x90
반응형
LIST