명품 자바 프로그래밍
-
[JAVA] final프로그래밍/JAVA 2020. 8. 10. 00:48
final 클래스 final이 클래스 앞에서 사용되면 클래스를 상속받을 수 없음을 지정 final class FinalClass { // 이 클래스는 상속 불가 .... } class SubClass extends FinalClass { // 컴파일 오류 발생, FinalClass 상속 불가 .... } final 메소드 final로 메소드를 선언하면 오버라이딩할 수 없는 메소드임을 선언 자식 클래스가 부모 클래스의 특정 메소드를 오버라이딩하지 못하게 하고 무조건 상속받아 사용하게끔 함 public class SuperClass { protected final int finalMethod() { .... } // finalMethod()는 자식이 오버라이딩 불가 } class SubClass extend..
-
[JAVA] static 멤버, static 메소드프로그래밍/JAVA 2020. 8. 5. 01:14
static 멤버의 선언 class StaticSample { int n;// non-static 필드 void g() {....} // non-static 메소드 static int m;// static 필드 static void f() {....}// static 메소드 } non-static 멤버와 static 멤버의 차이점 non-static 멤버 static 멤버 공간적 특성 멤버는 객체마다 별도 존재 - 인스턴스 멤버라고 부름 멤버는 클래스 당 하나 생성 - 멤버는 객체 내부가 아닌 별도의 공간(클래스 코드가 적재되는 메모리)에 생성 - 클래스 멤버라고 부름 시간적 특성 객체 생성시에 멤버 생성됨 - 객체가 생길 때 멤버도 생성 - 객체 생성 후 멤버 사용 가능 - 객체가 사라지면 멤버도 사라..
-
[JAVA] 접근지정자(Access Specfier)프로그래밍/JAVA 2020. 7. 26. 02:08
자바의 4가지 접근 지정자 접근 지정자(Access Specifier)는 클래스나 멤버들을 다른 클래스에서 접근해도 되는지의 여부를 선언하는 지시어 자바에는 private, protected, public, default 4가지 접근 지정자가 존재 클래스 접근 지정 다른 클래스에서 이 클래스를 활용할 수 있는지 허용 여부를 지정하는 것 public 클래스 클래스 이름 앞에 public으로 선언된 클래스 패키지에 상관없이 다른 어떤 클래스에게도 사용이 허용 // public 클래스 public class Public { .......... } default 클래스 접근 지정자 없이 클래스를 선언한 경우 default로 접근 지정됨 같은 패키지 내의 클래스들에게만 사용이 허용 // default 클래스 cl..
-
[JAVA] 클래스와 객체 + 생성자프로그래밍/JAVA 2020. 7. 26. 00:38
객체 지향 언어의 특성 캡슐화(Encapsulation) 객체를 캡슐로 싸서 내부를 보호하고 볼 수 없게 하는 것 외부의 접근으로부터 안전 객체의 캡슐화가 기본 원칙 but 외부와의 접속을 위해 부분 공개 노출 ex) TV는 내부를 캡슐화하고 On/Off 버튼, 채널 버튼, 음량 버튼 등을 리모컨과의 통신을 위해 공개 노출 상속(Inheritance) 자식 클래스가 부모 클래스의 속성을 물려받고 기능을 추가하여 확장 자식 클래스 == 서브 클래스 // 부모 클래스 = 슈퍼 클래스 다형성(Polymorphism) 같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 동작하도록 구현 상속관계에 있는 서브 클래스에서 동일한 이름으로 메소드를 다시 구현하는 오버라이딩 같은 클래스 내에서 이름이 같지만 서로 다르..