본문 바로가기

Dev/[Java]

[JAVA] 5. 인터페이스, static, final, abstract

반응형

 

Static Keyeord

Member Variable, Member Method 앞에 사용

일반적으로 멤버변수나 멤버메소드는 한 객체에서 의미가 있음

static 키워드를 사용하면, 한 객체가 아닌 클래스 자체와 연관

class변수, class메소드라고도 불림

객체 생성 없이 사용한다.

static 변수는 객체 생성과 관련이 없이 그냥 유지된다.

 

 

 

Class 로드시에 메모리에 생성되어진다.
전체 객체에서 공용으로 쓰이는 변수이다. (전역적인 성격)
만약 다른 클래스에서 사용되어지면 클래스이름.변수명 으로 참조

 

public class Count {
  private int serialNumber;
  public static int counter = 0;
  public Count() {
    counter++;
    serialNumber = counter;
  }
}
public class TestCount {
  public static void main( String [] args ) {
    System.out.println( "Number of counter is " + Count.counter );
    Count count1 = new Count();
    System.out.println( "Number of counter is " + Count.counter );
    Count count2 = new Count();
    System.out.println( "Number of counter is “ + Count.counter );
  }
}

 

 

 

 

final class = 상속 못 하게 함.

final method = override 못하게 함.

final variable = 상수

final variable

- 선언 시 초기화 안할 수 있다.

 

 

 

 

Interface(인터페이스)

abstract보다 더 추상화 된 개념

모든 메서드가 다 추상.

 

묵시적으로 public abstract 가 다 붙는다.

 모든 메소드가 abstract 메소드인 클래스
 메소드는 묵시적으로 public abstract
 멤버변수는 묵시적으로 public static final
 implements 키워드로 구현
 다중 구현 가능  단일 상속 극복
 객체 생성은 안되나, Ref 변수로서는 가능하다.
ex) Recording app = new MP3();

 

 Interface의 장점
 공통 기능상의 일관성 제공
 공동 작업을 위한 인터페이스 제공

J2SE JDBC 의 interface 구현 - DB Vendor

J2EE JDBC 의 Interface 구현 - WAS Vedor

WAS(Web Application SErver) : Tomcat

Web Server - Apache, Nginx

 

Servlet/JSP

 

HTML/CSS/Javascript -> Servlet/JSP -> JDBC App class

 

이렇게 해야지 Dynamic한 Web App 만들 수 있다.

 

반응형