자바 기초 학습-static final 추상 류 인터페이스
13228 단어 Java
오늘 배 운 것 은 몇 개의 키워드 와 추상 류 와 인터페이스 이다.
1、static
public class Test_1 {
public static void main(String args[]){
Man m1 = new Man("June",17);
m1.nation = "China";
m1.name = "Tom";
System.out.println(m1);
}
}
class Man{
String name = "June";
int age;
static String nation ;
public Man(String name,int age){
super();
this.name = name;
this.age = age;
// this.nation = "zhongguo"; , 。
}
public String toString(){
return "Man [name="+ name + ",age=" + age +",nation="+nation +"]";
}
}
static 수식 의 속성 은 클래스 변수 로 클래스.변수의 방식 으로 직접 호출 할 수 있 습 니 다.일반적인 변 수 는 인 스 턴 스 변수 이 고 대상 에 속 하 는 변수 입 니 다.먼저 있 는 대상 만 있 는 인 스 턴 스 변 수 는 쌓 인 공간 에 존재 합 니 다.한편,클래스 변 수 는 정적 영역 에 존재 합 니 다.먼저 클래스 의 생 성 보다 빠 르 고 끝 나 는 시간 도 클래스 의 시간 보다 늦 기 때문에 static 에 의 해 수 식 된 변수의 생명 주기 가 비교적 긴 것 도 큰 단점 입 니 다.
또한 비 정적 방법 에서 도 정적 속성 을 호출 할 수 있다.
그 다음은 static 수식 변 수 를 사용 하 는 두 가지 방식 이다.
(1)굶 주 린 사람 식
//
class Singleton{
private Singleton(){
}
private static Singleton instance = new Singleton();
public static Singleton getInstance(){
return instance;
}
}
(2)게으름뱅이 식
//
class Singleton1{
private Singleton1(){
}
private static Singleton1 instance = null;
public static Singleton1 getInstance(){
if(instance == null){
instance = new Singleton1();
}
return instance;
}
}
일반적으로 굶 주 린 사람 식 을 사용 하 는데 게 으 른 사람 식 은 스 레 드 안전 문 제 를 일 으 킬 수 있다 는 단점 이 있다.
마지막 으로 초기 화 블록,코드 블록 이 라 고도 부 르 며{}으로 표시 합 니 다.
class Order{
private static int orderid = 1001;
private String ordername;
public Order(){
super();
}
public Order(int orderid,String ordername){
super();
this.orderid = orderid;
this.ordername = ordername;
}
// : static , 。
// 。 , 。
{
orderid = 1002;
ordername = "aa";
}
static {
System.out.println(" ");
orderid = 1000; // 。
}
public int getOrderid() {
return orderid;
}
public void setOrderid(int orderid) {
this.orderid = orderid;
}
public String getOrdername() {
return ordername;
}
public void setOrdername(String ordername) {
this.ordername = ordername;
}
@Override
public String toString() {
return "Order{" +"orderid=" + orderid +", ordername='" + ordername + '\'' +'}';
}
}
2、final
표 시 된 클래스 는 계승 할 수 없습니다.수식 하 는 방법 은 다시 쓸 수 없습니다.수식 하 는 속성 은 변경 할 수 없습니다.이것 은 상수 입 니 다.
3.추상 류(abstract)
abstract class Creator{
abstract void breath();
}
// ; 。
//abrstrct 、 、private、final、static。
abstract class AbstructPerson extends Creator{ // , 。
public void eat(){
System.out.println("eat");
}
public void walk(){
System.out.println("walk");
}
}
// , , 。
// , 。
class Student extends AbstructPerson{
public void eat(){
System.out.println("eating");
}
public void walk(){
System.out.println("walking");
}
@Override
void breath() {
System.out.println("Breath");
}
}
추상 류 는 구체 적 인 실례 가 없 는 부류 이 고 구조 기도 있 으 며 실례 화 되 어 서 는 안 된다.abstract 는 속성,구조 기,private,final,static 를 수식 하 는 데 사용 할 수 없다.
인터페이스
인 터 페 이 스 는 추상 적 인 방법 과 상수 치 의 정의 집합 이 라 고 형상 적 으로 볼 수 있다.인터페이스 에는 추상 적 인 방법 과 상수 만 있다.
/*
, 。
。 , 。
, , 。
, 。
, 。
*/
interface AA{
// , public static final , 。
public static final int I = 10;
public static final boolean Flag = false;
// public abstract 。
void method1();
void method2();
}
//
abstract class BB implements AA{
}
//
class CC implements AA{
@Override
public void method1() {
}
@Override
public void method2() {
}
}
결론:드디어 헷 갈 리 기 쉬 운 개념 을 구분 했다.면접 필기시험 에서'static 의 역할,그리고 인터페이스 와 추상 류 의 차 이 를 물 었 다.면접 필기시험 을 준비 할 때 도 인터넷 에서 기계 적 으로 기억 하 는 것 뿐 이 었 다.이제 야 static 수식 의 속성 은 클래스 변수 이 고 정적 영역 에 존재 한 다 는 것 을 알 게 되 었 습 니 다.인터페이스 와 추상 류 도 잘 구분 된다.인터페이스 와 추상 류 는 모두 예화 되 지 못 하고 인 터 페 이 스 는 여러 개의 인 터 페 이 스 를 계승 할 수 있 으 며 다 중 계승 을 실현 할 수 있 지만 추상 류 는 단일 계승 만 실현 할 수 있다.그리고 인터페이스 에 구조 기 가 없고 추상 류 에 구조 기 가 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.