자바 상수, Java Constant, final[자바JSP/Servlet/JDBC/MiPlatform/XPlatform/교육/JSP/서블릿강좌/Spring교육잘하는곳/자바,JSP/spring/교육추천/JSP/JDBC실무교육]
[자바 상수, Java Constant, final변수, final메소드, final클래스]
자바에서는 Final 변수가 상수이다.
예)final static double PI = 3.1415;
예)final static double PI = 3.1415;
final과 static을 같이 정의하는 경우 그 변수는 상수처럼 사용되면서 모든 객체에서 공유하는 전역변수가 된다.
만약 메소드를 final로 정의했다면 하위클래스에서 재정의 불가하다.
클래스를 final로 정의했다면 그 클래스를 상속할 수 없다.
비초기화 화이널 변수(final 변수 선언시 초기치 주어지지 않은 변수: blank constant)의 경우에는 프로그램 내에서 오직 한번 대입 가능
초기치를 간단한 초기화 수식만으로 계산 할 수 없거나(반복문 등이 필요한 경우)초기화 도중 예외 발생하여 예외 처리가 필요한 경우
이렇게 생성된 final 변수는 값을 변경 할 수 없고 변경하려 할 경우 에러가 발생한다.
클래스 상수로 주로 이용, 주로 대문자로 표시한다.
[예제]
package onj;
class FinalVarTest
{
// final 클래스 변수, 모든 객체에서 공유가능
static final double PI = 3.14;
{
// final 클래스 변수, 모든 객체에서 공유가능
static final double PI = 3.14;
static int count = 0;
final int id; // Non static 화이널 변수(final 인스턴스변수)
final int id; // Non static 화이널 변수(final 인스턴스변수)
//생성자
FinalVarTest() {
// Non static 화이널 변수(final 인스턴스변수) 한번은 대입가능
id = count++;
}
FinalVarTest() {
// Non static 화이널 변수(final 인스턴스변수) 한번은 대입가능
id = count++;
}
public static void main( String[] args ) {
//메소드 내부 ststic 선언 불가
//static int i=0;
System.out.println( "FinalVarTest.PI = " + FinalVarTest.PI );
// FinalVarTest.PI = 3; // 오류난다, final변수의 내용은 수정할 수 없다.
//메소드 내부 ststic 선언 불가
//static int i=0;
System.out.println( "FinalVarTest.PI = " + FinalVarTest.PI );
// FinalVarTest.PI = 3; // 오류난다, final변수의 내용은 수정할 수 없다.
FinalVarTest obj1 = new FinalVarTest();
FinalVarTest obj2 = new FinalVarTest();
FinalVarTest obj2 = new FinalVarTest();
System.out.println( "obj1.id = " + obj1.id );
System.out.println( "obj2.id = " + obj2.id );
// obj1.id = 1; // 오류:화이널 변수의 내용을 수정불 가
System.out.println( "obj2.id = " + obj2.id );
// obj1.id = 1; // 오류:화이널 변수의 내용을 수정불 가
final int local; // non static 지역 변수
local = 3; // non static 화이널 변수는 한번은 대입할 수 있다.한
//local = 5; //한번더 대입 불가
m( 4 );
}
local = 3; // non static 화이널 변수는 한번은 대입할 수 있다.한
//local = 5; //한번더 대입 불가
m( 4 );
}
static void m( final int param ) // Final 매개 변수
{
System.out.println( "m(int): param = " + param );
// param = 7; // final 변수의 내용은 수정할 수 없다.
}
}
{
System.out.println( "m(int): param = " + param );
// param = 7; // final 변수의 내용은 수정할 수 없다.
}
}
[결과]
FinalVarTest.PI = 3.14
obj1.id = 0
obj2.id = 1
m(int): param = 4
obj1.id = 0
obj2.id = 1
m(int): param = 4
오라클자바커뮤니티교육센터, 개발자전문교육, 개인80%환급
www.oraclejavacommunity.com
평일주간(9:30~18:20) 개강
(5/26)SQL초보에서실전전문가까지
(5/26)안드로이드개발자과정
(5/26)C#4.0,ADO.NET,Network 프로그래밍
(5/26)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(5/27)JAVA,ORACLE 실무개발자과정
(5/28)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정
(5/30)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(5/30)[기업100%환급]SQL기초에서 Schema Object까지
(6/09)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
평일야간(19:00~21:50) 개강
(5/22)안드로이드개발자과정
(5/22)C#,ASP.NET마스터
(5/26)웹퍼블리싱 마스터
(5/28)Spring3.X, MyBatis, Hibernate실무과정
(5/28)SQL초보에서실전전문가까지
(5/29)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
주말(10:00~17:50) 개강
(5/24)Spring3.X, MyBatis, Hibernate실무과정
(5/24)C#,ASP.NET마스터
(5/24)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/24)안드로이드개발자과정
(5/24)SQL초보에서실전전문가까지
(5/24)실무예제로 배워보는 jQuery(개발자/디자이너를위한)
주말저녁(18:30~22:20) 개강
(5/24)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
www.oraclejavacommunity.com
평일주간(9:30~18:20) 개강
(5/26)SQL초보에서실전전문가까지
(5/26)안드로이드개발자과정
(5/26)C#4.0,ADO.NET,Network 프로그래밍
(5/26)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(5/27)JAVA,ORACLE 실무개발자과정
(5/28)[교육전취업확정]Spring,MyBatis,XPlatform실무프로젝트과정
(5/30)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(5/30)[기업100%환급]SQL기초에서 Schema Object까지
(6/09)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
평일야간(19:00~21:50) 개강
(5/22)안드로이드개발자과정
(5/22)C#,ASP.NET마스터
(5/26)웹퍼블리싱 마스터
(5/28)Spring3.X, MyBatis, Hibernate실무과정
(5/28)SQL초보에서실전전문가까지
(5/29)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
주말(10:00~17:50) 개강
(5/24)Spring3.X, MyBatis, Hibernate실무과정
(5/24)C#,ASP.NET마스터
(5/24)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(5/24)안드로이드개발자과정
(5/24)SQL초보에서실전전문가까지
(5/24)실무예제로 배워보는 jQuery(개발자/디자이너를위한)
주말저녁(18:30~22:20) 개강
(5/24)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
댓글 없음:
댓글 쓰기