Link
09-16 01:23
Tags
- java 변수
- java 연산자
- JAVA Parameter
- JAVA 데이터타입
- JAVA 메소드 리턴
- Java
- 자바 1대1 관계클래스
- 자바 필드값 초기화
- 자바 객체형 배열처리
- JAVA MultiParam
- JAVA 메소드
- Java switch
- JAVA ObjArray
- 개발 로드맵
- ChatGPT 번역
- JAVA 자동판매기
- JAVA 연습예제
- JAVA Aray
- 자바 메서드 매개변수
- 자바 생성자
- 자바 연산자
- 자바 다차원 배열
- 자바 NullPointer
- 자바 1대다관계
- 자바 1대1
- 리액트 네이티브
- 프로그래머스 자바
- JAVA NULL
- eclipse
- JAVA 클래스 구성
Archives
- Today
- Total
보기보기 개발 블로그
eclipse / 자바 Final 본문
안녕하세요
저번 포스팅에서 자바 Static 에 이어
이번엔 자바Final 에 대하여 알아보겠습니다.
eclipse / 자바 Static
안녕하세요 지난 포스팅에서 자바ArrayList에 이어 이번에는 자바 Static에 대하여 알아보겠습니다. eclipse / 자바 ArrayList를 통한 배열 처리 안녕하세요 지난 포스팅에서 자바 객체형 배열 처리에 이
stackbok.tistory.com
package javaexp.a07_multiObj;
public class A04_Final {
public static void main(String[] args) {
/*
# final 필드
1. 최종적인 값을 갖고 있는 필드 = 값을 변경할 수 없는 필드
2. final 필드는 딱 한번의 초기값 지정 방법이다.
1)필드 선언시 처리할 수 있고
2) 생성자로 초기값을 지정할 수 있다.
3.객체 단위로 초기값을 설정하고 변경되지 못하게 할 때 , 주로 사용된다.
단, 클래스 안에서 초기값을 설정하면 객체 단위로도 변경이 불가능하다.
cf)
final : 객체별로 데이터를 초기화하고 변경하지 못하게 처리.
static final : 클래스 단위로 초기화하고 변경하지 못하게하여,
객체의 공유데이터 중에 변경이 불가능하게 처리..
이렇게 설정된 데이터는 상수라 개념으로 사용되고,
대문자라고 선언하면, 구분자는 _(언더바)로 처리한다.
*/
Person p01 = new Person("951212-1802715", "홍길동");
System.out.println(p01.nation);
System.out.println(p01.ssn);
System.out.println(p01.name);
// p01.nation="일본"; final 키워드이기에 변경이 불가능 클래서 선언과 동시에 했기에
// 다른 객체로 생성을 하더라도 변경이 불가능
// p01.ssn ="951212-1802715"; 에러발생..final 객체 단위로 한번 설정이 되면 변경이 불가능
// p01.name="마길동"; 일반객체이기에 변경가능
Person p02 = new Person("123123-1802715", "오길동");
System.out.println(p02.nation); //클래스 안에서 선언했기에 변경이 불가능
System.out.println(p02.ssn); //다른 객체를 통해서는 변경이가능 , 하지만 변경은 불가능
System.out.println(p02.name); //다른객체로 사용하면 가능!
//ex)
Player1 pr1 = new Player1("김광형", "SSG", 0.47);
Player1 pr2 = new Player1("반즈", "롯데", 1.40);
Player1 pr3 = new Player1("박세웅", "롯세", 1.47);
pr1.score = 0.51;
pr1.team = "KIA";
// pr1.name = "오길동"; final로 된 변수는 객체단위로 한번 설정이 되면 변경이 불가능하다.
pr1.showInfo();
pr2.showInfo();
pr3.showInfo();
/*
# 상수(static final)
1. 상수 = static final 필드
final 필드 : 객체마다 가지는 불변의 인스턴스 필드
static final : 객체마다 가지고 있지 않고 클래스 단위로 설정
메소드 영역에 클래스 별로 관리되는 불변의 정적 필드
공용 데이터로서 사용
2. 상수 이름을 전부 대문자로 작성을 일반적으로 한다.(네이밍 규칙)
ex) static final double PI = 3.14;
3. 다른 단어가 결합되면_로 연결
ex) static final CUR_NATION = "한국";
cf)
final class 클래스명{} : 상속하지 못하는 클래스 지정.
ex)class 하위클래스 extends final클래스명{} (X)
final void call(){}: 하위에 재정의 하지 못하는 메서드 지정.
==> 하위 클래스에서는 위 메서드를 재정의하지 못한다.
모든객체 마다
*/
System.out.println("분야:"+Player1.KIND);
// Player1.KIND="축구선수";
}
}
class Player1{
static final String KIND="야구선수";
final String name;
String team;
double score;
Player1(String name,String team,double score){
this.name = name;
this.team = team;
this.score = score;
}
void showInfo() {
System.out.println("#선수의 정보#");
System.out.println("이름 :"+name);
System.out.println("소속팀 :"+team);
System.out.println("성적 :"+score);
}
}
class Person{
//초기값 설정 클래스 내에서 바로 선언
final String nation="한국";
final String ssn; // 생성자에 의해 초기값 설정
String name;
Person(String ssn,String name){
this.ssn = ssn;
this.name = name;
}
}
이상으로 자바 Final 에 대하여 알아봤습니다
감사합니다.
'Java' 카테고리의 다른 글
eclipse / 자바 1대다 관계 클래스 (0) | 2023.03.25 |
---|---|
eclipse / 자바 1대1 관계 클래스 (0) | 2023.03.25 |
eclipse / 자바 Static (0) | 2023.03.23 |
eclipse / 자바 ArrayList를 통한 배열 처리 (0) | 2023.03.23 |
eclipse / 자바 객체형 배열 처리 (0) | 2023.03.23 |