[Java] static 메서드와 인스턴스 메서드

고동이의 IT·2021년 10월 7일
0

Java

목록 보기
3/37

> # static 메서드
객체생성없이 클래스이름.메서드이름()으로 호출한다.
인스턴스 멤버 사용이 불가

인스턴스 메서드

객체생성 후 참조변수.메서드이름()으로 호출한다.
인스턴스 멤버를 사용한다.

=> 둘의 가장 큰 차이점은 인스턴스 변수 사용여부

예제를 통해 알아봅시다.

public class MyMath2 {
	long a,b; //iv-인스턴스변수
	long add() {
		return a+b; //iv-인스턴스변수
	}
	static long add(long a, long b) {// lv-지역변수
		return a+b;//lv-지역변수
	}
}
public class MyMath2test {

	public static void main(String[] args) {
		// static 메서드 호출
	System.out.println(MyMath2.add(200L, 100L)); 
    //Static메서드의 파라미터값
	
	
	MyMath2 m = new MyMath2();
	m.a=200L;
	m.b=100L; // IV인스턴스 변수
	System.out.println(m.add()); //인스턴스 메서드 호출

	}

}
 

[자바의 정석 예제 6-6]

public class Exercise6_6 {

	    //[6-6] 두 점의 거리를 계산하는 메소드를 완성하시오
        getDistance() .
	    //[Hint] 제곱근 계산은  Math.sqrt(double a)를 
        사용하면 된다 .

		// (x,y) (x1,y1) . 두 점 와 간의 거리를 구한다
		static double getDistance(int x, int y, int x1, int y1) {
		// 거리를 구하는 공식
			return Math.sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1)); 
		}
		public static void main(String args[]) {
		System.out.println(getDistance(1,1,2,2));
		
		
		
		MyPoint p = new MyPoint(1,1);
		// p (2,2) . 와 의 거리를 구한다
		System.out.println(p.getDistanceS(2,2));

		


	}

}

//[6-7] getDistance()를 MyPoint클래스에서 getDistanceS() 인스턴스 메서드로 정의하시오.

   class MyPoint {
     	int x;

int y;
MyPoint(int x, int y) {
this.x = x;
this.y = y;
}
double getDistanceS(int x1, int y1) {
return Math.sqrt((x-x1)(x-x1)+(y-y1)(y-y1));
}

}

profile
삐약..뺙뺙

0개의 댓글