본문 바로가기

분류 전체보기216

final final 클래스: 클래스 이름 앞에 final을 사용하면 클래스를 상속받을 수 없음final class FinalClass{ //이 클래스는 상속 불가 ...}class SubClass extends FinalClass{ //상속 불가, 컴파일 오류 ...} final 메소드: final로 메소드를 선언하면 오버라이딩할 수 없음public class SuperClass{ protected final int finalMethod(){...} //finalMethod()는 자식 클래스에서 오버라이딩 불가}class Subclass extends SuperClass{ protected int finalMethod(){...} //오버라이딩 불가, 컴파일 오류}- 자식 클래스가 부모 클래스의 특정 메.. 2024. 5. 20.
static static 멤버의 선언- static을 붙여 선언class StaticSample{ int n; void g(){...}; static int m; static void f(){...}; } static 멤버와 non-static 멤버의 차이점 non-static 멤버static 멤버선언class Sample{    int n;    void g(){ ... }}class Sample{    static int m;    static void f(){ ... }}공간적 특성멤버는 객체마다 별도 존재- 인스턴스 멤버멤버는 클래스당 하나 생성- 객체 내부가 아닌 별도의 공간(클래스 코드가 적재되는 메모리)에 멤버 생성- 클래스 멤버시간적 특성객체 생성 시 멤버 생성- 객체가 생길 때.. 2024. 5. 20.
접근 지정자 패키지- 서로 관련 있는 클래스 파일(.class)들을 패키지에 저장하여 관리- 폴더 개념과 비슷- 자바 응용프로그램은 여러 개의 패키지로 구성 접근 지정자- public: 모든 클래스에 접근 허용- private: 동일 클래스 내에서만 접근 허용- protected: 동일 패키지 내에서만 접근 허용, 서브 클래스일 시 다른 패키지에 있어도 접근 허용- default: 같은 패키지 내에서만 접근 허용클래스 접근 지정- 다른 클래스에서 현재 클래스를 활용할 수 있는지 허용 여부 지정 1. public 클래스- 패키지와 상관없이 다른 모든 클래스에게 접근 허용public class World{ ...} 2. 디폴트 클래스- 접근 지정자가 생략된 경우 default로 선언- package-private라고도 .. 2024. 5. 20.
객체 소멸과 가비지 컬렉션 객체 소멸- new에 의해 할당된 객체 메모리를 자바 가상 기계의 가용 메모리로 되돌려 주는 행위- 자바 응용프로그램에서 임의로 객체를 소멸시킬 수 없음가비지(garbage)- 자바 응용프로그램에서 더 이상 사용되지 않게 된 객체나 배열 메모리- 가리키는 레퍼런스가 하나도 없는 객체나 배열- 응용프로그램이 더 이상 접근할 수 없음a = new Person("이몽룡");b = new Person("성춘향");//2개의 Person 객체 생성b = a;//레퍼런스 b는 a가 가리키던 객체를 가리킴//b가 가리키던 처음 객체는 아무도 참조하지 않게 됨(접근 불가) -> 가비지가비지 컬렉션- 자바에서 가비지를 자동 회수하여 가용 메모리로 반환하는 과정- 가비지가 차지하고 있는 메모리 공간은 회수되는 것이 경제적.. 2024. 5. 20.
메소드 활용 - 메소드 오버로딩 메소드 오버로딩(Overloading)- 한 클래스 내에 이름이 같은 메소드를 중복 작성메소드 이름이 동일매개변수의 개수나 타입이 서로 다름- 위 조건들을 만족해야 메소드가 오버로딩될 수 있음- 리턴 타입이나 접근 지정자는 오버로딩과 무관class MethodOverLoading{ public int getSum(int i, int j){ return i+j; } public int getSum(int i, int j, int k){ return i+j+k; }}//오버로딩 성공 사례//두 메소드 이름 getSum으로 동일//매개변수의 개수 다름class MethodOverLoadingFail{ public int getSum(int i, int j){ return .. 2024. 5. 20.
메소드 활용 - 인자 전달 메소드 형식 메소드- 클래스의 멤버 함수- 접근 지정자 선언을 제외하면 C/C++의 함수 작성법과 동일- 접근 지정자: 메소드가 다른 클래스에서 호출될 수 있는지 지정(public, prvate, protected, default)- 리턴 타입: 메소드가 반환하는 값의 데이터 타입인자 전달 자바의 인자 전달 방식- 기본 타입의 값 전달- 객체 또는 배열 전달 1. 기본 타입의 값이 전달되는 경우- 메소드 매개변수가 기본 타입(byte, char, short, int, long, float, double, boolean)으로 선언된 경우- 호출자(caller)가 전달하는 값이 매개변수에 복사되어 전달- 실인자 값은 변경되지 않음public class ValuePassing{ static void incre.. 2024. 5. 20.