반응형
final 필드는 최종적인 값을 갖고 있고, 값을 변경할 수 없다.
final 필드는 한 번의 초기값을 지정할 수 있다.
public class examfinal{
// 기본 필드에 final의 내용을 작성.
final String nation = "Korean"; // 이미 korean이라는값을주고 선언 되었고
finaln String ssn; // ssn은 아직 값은 안준 상태로 선언 되었다.
public examfinal(String ssn){ // ssn이라는 값을 주기 위해선 우선 this를 사용해 지정시킨다.
this.ssn = ssn;
}
}
public class examfinaltest {
public static void main(String []args){
// examfinal을 사용하기 위해 선언한다.examfinal ef = new examfinal("8555"); // examfinal의 패키지에 있던 String ssn의 값을 선언한다.
System.out.println(ef.nation);System.out.println(ef.ssn);
}
}
실행 결과 :
korean
8555가 출력된다.
( static final) 상수는 이름을 전부 대문자로 작성하는 것이 관례(안 해도 됨)이고 다른 단어가 결합될 시 _(언더바)를 추가하여 사용한다.
※ 공용 데이터로 사용하며 메소드 영역에 클래스 별로 관리되는 불변의 정적 필드이다.
public class examstatic{
static final double TEST_T = 8888; // TEST_T의 값은 8888
static final double TEST_T_T;
static {
TEST_T_T = 9 * Math.PI * TEST_T * TEST_T; // TEST_T_T의 값은 9 * pi * TEST_T * TEST_T이다.
}
}
public class examstatictest{
public static void main(String [] args){
System.out.println(examstatic.TEST_T);
System.out.println(examstatic.TEST_T_T);
}
}
실행결과
8888
2.2335746606044455E9
패키지( package )는 클래스를 기능별로 묶어 그룹의 이름을 붙여 놓는 것. 다른 곳의 패키지 파일을 가져다 쓰기 위해 import문을 이용해 사용할 수 있다.
※ 같은 패키지 안에 클래스는 그냥 사용할 수 있다.
※ import는.*로 사용할 수 있고 ctrl + shift + o를 누르면 자동으로 추가할 수 있다.
[1번 패키지]
class a{
}
[1번 패키지]
public class b{
a A;
}
[2번 패키지]
import **경로.***;
public class c{
// a A; 1번 패키지 안 a클래스는 public 가 붙어있지 않아 오류가 나타남.
b B;
}
접근 제한자. (Access Modifier)
클래스 및 클래스의 구성 멤버에 대한 접근을 제한하는 역할을 한다.
※ 다른 패키지에서 클래스를 사용하지 못하도록 특정 필드와 메소드를 숨긴다.(쉽게 말해 잠금장치 같은 것.)
※ public, protected, default, private 종류로 구분되며 가장 많이 쓰는 것은 , public(내.
외부 클래스에서 사용할 수 있게 허용)와 private(모든 외부 클래스에서 작업할 수 없게 차단)로 나뉜다.
[1번 패키지]
public class A{
A a1 = new A(true);
A a2 = new A(1);
A a3 = new A("문자");
public A(boolean b){
}
A(int b){
}
private A(String s){
}
}
[1번 패키지]
public class B{
A a1 = new A(true);
A a2 = new A(1); // 같은 패키지 안에 있으면 여기까지 사용 가능하다.
}
[2번 패키지]
import **경로.***;
public class C{
A a1 = new A(true); // 다른 패키지 안에 있으면 여기까지 사용 가능하다.
}
반응형
'Java > Java' 카테고리의 다른 글
자바[Java] 상속 이란? (0) | 2021.10.13 |
---|---|
자바[Java] Getter와 Setter 메소드란? (0) | 2021.10.12 |
자바[Java] 메소드란? (0) | 2021.10.08 |
자바 [Java] 객체지향(OOP) 프로그래밍이란? 개념정리 (0) | 2021.10.07 |
자바[Java] 데이터 타입의 기본 타입과 참조 타입에 대한 개념 정리 (0) | 2021.10.06 |