변수

  • 타입
    • 기본형(8개)
    • 참조형
      • 주소값을 저장
  • 위치
    • 클래스영역
      • 클래스 멤버 변수
        • static
      • 인스턴스 멤버
    • 함수영역
      • 지역(로컬)변수
      • 파라미터변수
  • 뭐가 이렇게 분류가 어렵냐

특징

  • 인스턴트(instance/non static) 멤버
    • 변수는 heap에 생성됨
    • gc가 삭제, 명시 소멸이 안됨
  • 클래스(static) 멤버
    • static으로 클래스 로딩시 메모리 등록
    • 프로그램 종료시 소멸
  • 지역변수,파라미터
    • 메서드내
    • 해당 stack내에 생성
    • 초기화 필요
    • 소멸은 {}을 벗어날때, 메서드끝날때

메서드

  • public(제한자) int(반환타입) add(함수명)(int a 파라미터)//선언부
    • 묵시적 형변환 가능
  • {}//구현부

Variable arguments

  • 선언부에서 가변적인 인자들을 받기위해 사용
  • ...
    • public void a(int… aa){}

클래스와 일반 멤버간 호출

  • static 메소드에서
    • static변수, static메소드는 바로 호출가능
    • 일반 변수, 일반 메소드는 객체 생서후
  • 일반 메소드에서
    • static변수, static메소드는 바로 호출가능
    • 일반 변수, 일반 메소드는 바로 호출가능(이미 객체 생성된 상태)
    • 다른 클래스 static메소드는 바로호출, 일반메소드는 객체생성후 가능
    • 만약 파라미터로 다른 클래스를 받았으면 바로 호출 가능

call by value

  • 값을 복사한다.
    • 참조형 변수도 복사를 위해서는 주소값을 지나서 가르키는 값을 복사하는 깊은 복사를 해야한다.

오버로딩

  • 같은 함수명, 인자를 다르게
    • 인자는 갯수, 타입, 순서가 다르면된다.
  • 반환값은 구분X

생성자

  • new와 함께 호출
  • 초기화에 용이
  • class와 같은 함수
    • 리턴타입이 없음
    • public private등이 가능

this

  • 메소드를 가진ㄴ 클래스가 기준
  • static에서는 못씀

this()

  • 첫줄에만 가능
  • 생성자를 호출
  • 오버로딩가능