<Java> 5. 클래스의 멤버

정지민·2023년 9월 29일

Java

목록 보기
4/12

메서드 호출 메커니즘

  1. 인수의 표현식은 메서드가 호출되기 전에 먼저 계산
    c1.setRadius(1+1); //연산이 먼저 처리
  2. 인수값은 해당되는 형식 매개변수의 위치 순서대로 복사(필요시 자동타입변환)
  3. return문의 표현식이 계산됨(필요시 타입 변환)
  4. 클래스에 함수도 포함 가능하다

메서드 인자 전달 방식

  • 값 호출

    • 기본자료형
    • 실인수의 값이 그대로 형식 매개변수로 복사되어 전달
  • 참조 호출

    • 참조자료형
    • 객체의 값 대신 참조 변수가 객체에 대한 참조값을 매개변수로 복사하여 전달

메서드 오버로딩

  • 하나의 클래스 내에서 같은 이름을 가진 메서드가 여러개 정의될 수 있음
[접근제한] <반환형> <메서드명> ([매개변수1], ..., [매개변수n] {... }
//접근제한, 반환형: 상관없음
//메서드명: 반드시 같아야함
//매개변수: 인자의 개수나 타입이 반드시 달라야 !!

this 참조변수

  • 메서드 호출시, 메서드 자신을 호출한 객체에 대한 참조값을 받는 변수
    • 자동정의되는 지역변수
  • 메서드 안에서 그 자신의 다른 멤버들을 조작하고자 할 때 사용
    • 묵시적 사용
    • 명시적 사용: 멤버변수(this 0)와 매개변수(this x) 구분위해 사용

멤버 필드

[접근제한] [static] <자료형> <식별자>;

  • instance 멤버 필드

    • 일반적, 생략 가능
    • 별도의 메모리 할당, 고유의 속성값 저장
  • static 멤버 필드

    • 특정적
    • 주로 static 상수/=
    • 단 하나만 생성 가능 / 해당 클래스의 모든 객체들이 공유
    • 객체를 생성하지 않고도 사용 가능
static final double PI = 3.14;
//static 멤버 필드 접근시 Circle.PI (클래스.멤버변수)

메서드의 종류

  • instance 메서드

    • 일반적, 대부분
    • 객체를 꼭 만들어야함
    • 자신의 모든 멤버를 직접 참조 가능
  • static 메서드

    • 객체를 생성하지 않고도 수행 가능
      • static 멤버 필드의 안전한 접근 제공
      • 객체 생성과 관련없는 일반적 기능 제공
    • static이 아닌 instance 멤버는 직접 참조 불가
      • this 참조 변수 사용 불가




Public static void main(String[] args)

  • 가장 먼저 실행
  • public : 어디서든 접근 허용
  • static : main메소드를 호출하는 객체를 생성하지 않고도 접근 용이
  • void : 반환값 없음
  • String[] : string의 배열형

객체 생성하지 않고 main에서 바로 호출 예시

public class Circle_sp {//절차지향
	static final double PI = 3.14159265;
	
	static double getArea(double radius) {
		return PI * radius * radius;
	}
	
	public static void main(String[] args) {
		double r1=1;
		double r10=10;
		
		double area1 = getArea(r1); //PI*r1*r1;
		double area10 = getArea(r10);  //PI*r10*r10;
		//static: Circle_sp라는 객체 생성x, getArea 직접 호출 가능
		
		System.out.println("반지름"+r1+"인 원의 넓이는 "+area1);
		System.out.println("반지름"+r10+"인 원의 넓이는 "+area10);
	}
}

0개의 댓글