본문 바로가기
반응형

전체 글350

접근 제어자 접근 제어자 접근 제어자는 멤버 또는 클래스에 사용되어, 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할을 한다. 클래스나 멤버 변수, 생성자에 접근 제어자가 지정되어 있지 않다면, 접근 제어자가 default(package-private)임을 뜻한다. 접근 제어자는 클래스, 멤버 변수, 메서드, 생성자에서 사용 가능하며 접근 제어자는 아래와 같이 정리할 수 있다. private : 같은 클래스 내에서만 접근이 가능하다. protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서 접근이 가능하다. default(package-private) : 같은 패키지 내에서만 접근이 가능하다. public : 접근 제한이 전혀 없다. 접근 범위가 넓은 쪽에서 좁은 쪽의 순.. 2022. 2. 28.
final 제어자 final 제어자 final은 '마지막의' 또는 '변경될 수 없는'의 의미를 가지고 있으며 거의 모든 대상에 사용될 수 있다. 변수에 사용되면 값을 변경할 수 없는 상수가 되며, 메서드에 사용되면 오버라이딩을 할 수 없게 되고, 클래스에 사용되면 자신을 확장하는 자손 클래스를 정의하지 못하게 된다. 아래는 final 제어자 사용에 대해 정리한 표다. 클래스 변경될 수 없는 클래스. 확장될 수 없는 클래스가 된다. 그래서 final로 지정된 클래스는 다른 클래스의 조상이 될 수 없다. 메서드 변경될 수 없는 메서드, final로 지정된 메서드는 오버라이딩을 통해 재정의 될 수 없다. 멤버변수 변수 앞에 final이 붙으면, 값을 변경할 수 없는 상수가 된다. 지역변수 변수 앞에 final이 붙으면, 값을 .. 2022. 2. 28.
package(패키지) Package(패키지 ) package, 즉 패키지란 클래스의 묶음이다. 패키지에는 클래스 또는 인터페이스를 포함시킬 수 있다. 또한 서로 관련된 클래스를 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있다. 사실 클래스의 실제 이름은 패키지명을 포함한 것이다. 예를 들면 String클래스의 실제 이름은 java.lang.String이다. 그래서 같은 이름의 클래스일 지라도 서로 다른 패키지에 속하면 패키지명으로 구별이 가능하다. 클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리적으로 하나의 디렉토리다. 패키지의 선언은 아주 간단한다. package 패키지명; 클래스나 인터페이스의 소스파일의 맨 위에 다음과 같이 한 줄만 적어주면 된다. 위와 같은 패키지 선언문은.. 2022. 2. 28.
가변인자(varargs) 기존에는 메서드의 매개변수 개수가 고정적이었으나, JDK1.5부터 동적으로 지정해 줄 수 있게 되었으며, 이 기능을 가변 인자라고 한다. 가변 인자는 '타입... 변수명'과 같은 형식으로 선언하며. PrintStream 클래스의 printf()가 대표적인 예다. public PrintStream printf(String format, Object... args) { ... } 위와 같이 가변 인자 외에도 매개변수가 더 있다면, 가변 인자를 매개변수 중에서 제일 마지막에 선언해야 한다. 그렇지 않다면, 컴파일 에러가 발생한다. 가변 인자인지 아닌지를 구별할 방법이 없기 때문에 허용하지 않는 것이다. 이제 아래 코드를 살펴보자. String concatenate(String s1, String s2){ .... 2022. 2. 27.
오버로딩과 오버라이딩 오버로딩 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 메서드 오버로딩, 즉 오버로딩이라고 한다. 오버로딩에는 몇 가지 조건이 있다. 메서드 이름이 같아야 한다. 매개변수의 개수 또는 타입이 달라야 한다. 메서드의 이름이 같다 하더라도 매개변수가 다르면 서로 구별될 수 있다. 매개변수에 의해서만 구별되므로 반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다. 위의 조건을 만족시키지 못하는 메서드는 중복 정의로 간주되어 컴파일 시 오류가 발생한다. 이제 예시를 통해 알아보겠다. long add(int a, long b) { return a+b;} long add(long a, int b) { return a+b;} 두 메서드는 int형과 long형 매개변수가 하나씩 선언되어 있지만,.. 2022. 2. 26.
연관관계 매핑 기초 2023. 02.07 13:00 복습 시작 연관관계 엔티티들은 대부분 다른 엔티티와 연관관계가 있다. 객체는 참조(주소)를 사용해서 관계를 맺고 테이블은 외래 키를 사용해서 관계를 맺는다. 이 둘은 완전히 다른 특징을 가지며, 객체 관계 매핑(ORM)에서 가장 어려운 부분이 바로 객체 연관관계와 테이블의 연관 관계를 매핑하는 일이다. 이제 객체의 참조와 테이블의 외래 키를 매핑하는 방법을 알아보겠다. 알아둬야 할 용어들이 있다. 방향 : 단방향과, 양방향이 있다. 한쪽만 참조하는 것을 단방향, 양 쪽 모두 서로 참조하는 것을 양방향이라고 한다. 방향은 객체 관계에만 존재하고, 테이블은 항상 양방향이다. 다중성: 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 이해 연관관계의 주인 :.. 2022. 2. 25.
반응형