728x90
반응형
728x90
반응형
static을 붙이는 메서드 메서드에 static이 붙는 경우는 어떤 불변의 기능을 언제든지 실행시켜야 할 때 static이 붙는다. 예를 들어 원의 둘레를 구하는 메서드를 구현한다고 하면, 이 경우는 static이 붙여져서 선언된다. 이유: 어느 전 국가에서나 통용되는 범용적인 공식이기 때문에 static을 붙여서 선언한다. 위처럼 메서드의 기능을 잘 생각해서 static을 붙일지 말지 결정하여 메서드를 선언한다. 아래에는 static이 붙은 메서드에 일반 멤버변수가 들어간 경우이다. 이 때 static 메서드과 멤버변수는 이미 메모리가 할당되어 객체 호출없이 static 멤버변수를 사용 가능하지만 일반 멤버변수는 메모리 할당이 되어있지 않기 때문에 사용이 불가능하다. 따라서 메서드안에 객체를 호출해줘..
인터페이스 default & static 만약 interface에 추상메서드를 추가하면 다른 interface의 메서드를 쓰는 클래스에 추가된 추상메서드를 전부 선언해야하는 불편함이 있다. 따라서 default값을 넣고 {} 중괄호를 붙여 선언하면 원하는 클래스에만 그 추상메서드를 선언할 수 있다 중괄호를 선언해서 몸통을 만들었기 때문에 생기는 문제점 2가지 여러 인터페이스 디폴트 메서드간의 충돌 이 경우 인터페이스를 구현한 클래스에서 디폴트 메서드를 오버라이딩 해야한다. 디폴트 메서드와 조상 클래스 메서드간의 충돌 이 경우 조상 클래스의 메서드가 상속되고 디폴트 메서드는 무시된다. class methodtest implements iftest{ public void method() { } } class..
static(클래스) & 인스턴스 메서드 인스턴스는 참조변수를 써야하고 클래스 메서드는 객체 생성없이 클래스 변수 이름만으로 호출가능 클래스 메서드 예시: Math.random, Math.round public class Math{ int a; //인스턴스 변수: 모든 클래스, 즉 Math 클래스 전체에 적용되는 인스턴스 변수 int b; int add() { return a + b; } static int add(int a, int b) { //클래스 변수: 하단의 클래스까지만 적용 return a + b; // 지역변수 //지역변수를 사용하고 iv(instance variable = 인스턴스 변수)를 사용하지 않을 때 //static을 붙여 class 변수로 만듬 } } class MathMain{ ..