package edu.exam04.static13;

//객체를 생성해야 사용할 수 있는 일반 클래스
//일반 메서드를 생성하겠다.

//메서드는 메모리에 로딩되어야 사용할 수 있다.
//일반 메서드는 객체 생성 시 메모리에 로딩된다.

public class Calc {
	
	
	public float add(float a, float b) {
		return a+b;
	}
	public float sub(float a, float b) {
		return a-b;
	}
	public float mul(float a, float b) {
		return a*b;
	}
	public float div(float a, float b) {
		return a/b;
	}
}

 

package edu.exam04.static13;

/*static 메서드는 클래스 소속이다. 
static 메서드는 객체가 생성되지 않아도 해당 코드가 프로젝트에 포함되어 있으면 메모리에 로딩되게 된다.
그러므로 객체를 생성하지 않아도 사용가능하다.*/

public class CalcStatic {

	static public float add(float a, float b) {
		return a+b;
	}
	static public float sub(float a, float b) {
		return a-b;
	}
	static public float mul(float a, float b) {
		return a*b;
	}
	static public float div(float a, float b) {
		return a/b;
	}
}
package edu.exam04.static13;

/*static은 클래스를 통해 바로 호출이 가능
객체를 만들지 않아도 메모리에 올라가게 된다.
그러므로 static으로 만드는 메서드는 프로그램이 종료될 때까지 계속 존재한다.
반면 일반 객체 소속 메서드는 객체가 GA(Garbage Collector)에 의해 소멸되면 사라진다.

static메서드는 일반적으로 사용되는 utility성 기능들
범용적인 기능들, 항상 계속 여러군데서 사용되는 기능들을 구현한다.*/

public class CalcMain {
	public static void main(String[] args) {
		Calc calc = new Calc();
		System.out.println(calc.add(10, 20));
		System.out.println(calc.sub(10, 20));
	
	
		System.out.println(CalcStatic.add(10, 20));
		System.out.println(CalcStatic.sub(10, 20));
	}
}

 

+ Recent posts