JAVA공부 (77) 썸네일형 리스트형 This 와 this() this this는 객체 즉, 인스턴스 자신을 표현하는 키워드입니다. 객체 내부 생성자 및 메서드에서 객체 내부 멤버에 접근하기 위해 사용될 수 있습니다. 객체 내부 멤버에 접근할 때 this 키워드가 필수는 아니지만 상황에 따라 필수가 될 수 있습니다. public Car(String model, String color, double price) { model = model; color = color; price = price; } 만약 이처럼 생성자를 선언하는데 매개변수명과 객체의 필드명이 동일할 경우 오류가 발생하지는 않지만 생성자 블록 내부에서 해당 변수들은 객체의 필드가 아닌 가장 가까운 매개변수명을 가리키게 됨으로 자기 자신에게 값을 대입하는 상황이 되어 버립니다. 이럴 경우에 this 키워드.. 생성자 생성자는 객체가 생성될 때 호출되며 객체를 초기화하는 역할을 수행합니다. 생성자 선언과 호출 public Car() {} // 선언 ... Car car = new Car(); // 호출 생성자는 반환 타입이 없고 이름은 클래스의 이름과 동일합니다. new 연산자에 의해 객체가 생성되면서 Car(); 즉, 생성자가 호출됩니다. 기본 생성자 기본 생성자는 선언할 때 괄호( ) 안에 아무것도 넣지않는 생성자를 의미합니다. 모든 클래스는 반드시 생성자가 하나 이상 존재합니다. 만약 클래스에 생성자를 하나도 선언하지 않았다면 컴파일러는 기본 생성자를 바이트코드 파일에 자동으로 추가시켜줍니다. 따라서 이러한 경우는 기본 생성자 생략이 가능합니다. 반대로 단 하나라도 생성자가 선언되어있다면 컴파일러는 기본 생성자를.. 지역변수 및 상수 지역변수 메서드 내부에 선언한 변수를 의미합니다. 메서드가 실행될때마다 독립적인 값을 저장하고 관리하게됩니다. 지역 변수는 메서드 내부에서 정의될때 생성되어 메서드가 종료될 때까지만 유지됩니다. final 필드와 상수 final은 ‘최종적’ 이라는 의미입니다 final 필드는 초기값이 저장되면 해당값을 프로그램이 실행하는 도중에는 절대로 수정할 수 없습니다. 또한 final 필드는 반드시 초기값을 지정해야 합니다. . 인스턴스 멤버와 클래스 멤버 멤버 = 필드 + 메서드 인스턴스 멤버 = 인스턴스 필드 + 인스턴스 메서드 클래스 멤버 = 클래스 필드 + 클래스 메서드 인스턴스 멤버 & 클래스 멤버 필드와 메서드는 선언하는 방법에 따라서 인스턴스 멤버와 클래스 멤버로 구분할 수 있습니다. 인스턴스 멤버는 객체 생성 후에 사용할 수 있고 클래스 멤버는 객체 생성 없이도 사용할 수 있습니다 인스턴스 멤버 인스턴스 멤버는 객체를 생성해야 사용할 수 있다. 또한 객체의 인스턴스 필드는 각각의 인스턴스 마다 고유하게 값을 가질 수 있다. 그렇다면 객체가 인스턴스화 할 때마다 객체의 메서드들은 인스턴스에 포함되어 매번 생성이 될까? 그렇지 않다. 매번 저장한다면 중복 저장으로 인해 메모리 효율이 매우 떨어지기 때문에 메서드는 메서드 영역에 두고서 모든 인스턴.. 기본형 & 참조형 매개변수 기본형 매개변수 메서드를 호출할 때 전달할 매개값으로 지정한 값을 메서드의 매개변수에 복사해서 전달합니다. 매개변수의 타입이 기본형일 때는 값 자체가 복사되어 넘어가기 때문에 매개값으로 지정된 변수의 원본 값이 변경되지 않습니다. 참조형 매개변수 메서드를 호출할 때 전달할 매개값으로 지정한 값의 주소를 매개변수에 복사해서 전달합니다. 매개변수를 참조형으로 선언하면 값이 저장된 곳의 원본 주소를 알 수 있기 때문에 값을 읽어 오는 것은 물론 값을 변경하는 것도 가능합니다. 메서드의 매개변수 뿐만 아니라 반환타입도 참조형이 될 수 있습니다. 반환타입이 참조형이라는 것은 반환하는 값의 타입이 “실제값의 주소”라는 의미입니다. 객체의 행위 : 메서드 메서드는 객체의 행위를 뜻하며 객체간의 협력을 위해 사용됩니다. 메서드의 행위를 정의하는 방법은 블록{ } 내부에 실행할 행위를 정의하면됩니다. 메서드 호출방법 ‘메서드를 호출한다’ 라는 의미는 메서드의 블록 내부에 작성된 코드를 실행한다는 의미입니다. 필드와 마찬가지로 클래스의 메서드를 정의하여 선언했다고 해서 바로 사용할 수 있는 것은 아닙니다. 클래스는 설계도일 뿐 메서드는 객체의 행위를 정의한 것입니다. 따라서 객체를 생성한 후에 메서드를 사용할 수 있습니다. 오버로딩 오버로딩 은 함수가 하나의 기능만을 구현하는것이 아니라 하나의 메서드 이름으로 여러 기능을 구현하도록 하는 Java의 기능입니다. 서드 오버로딩즉, 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도, 매개변.. 객체의 속성 : 필드 필드는 객체의 데이터를 저장하는 역할을 합니다. 객체의 필드는 크게 고유한 데이터, 상태 데이터, 객체 데이터로 분류할 수 있습니다. 필드의 초기값과 초기화 우리가 정의하여 선언한 클래스의 필드들은 기본적으로 초기값을 제공하지 않을 경우 객체가 생성될 때 자동으로 기본값으로 초기화됩니다. 초기값을 제공하는 방법은 ‘필드타입 필드명 = 값;’ 이렇게 직접 초기화 할 수 있습니다 '필드를 사용한다’ 라는 의미는 필드의 값을 변경하거나 읽는 것을 의미합니다. 우리가 클래스에 필드를 정의하여 선언했다고 해서 바로 사용할 수 있는 것은 아닙니다. 클래스는 설계도일 뿐 실제로 필드의 데이터를 가지고 있는 것은 객체입니다. 따라서 객체를 생성한 후에 필드를 사용할 수 있습니다. 필드 타입별 기본값 객체 생성 객체 생성 연산자인 ‘new’를 사용하면 클래스로부터 객체를 생성할 수 있습니다. new 연산자 뒤에는 해당 클래스의 생성자 호출 코드를 작성합니다. 형태가 Car();즉, 기본 생성자의 형태와 같기 때문에 new 연산자에 의해 객체가 생성되면서 기본 생성자가 호출됩니다. ex) new Car(); // Car클래스 객체 생성 참조형변수) Car car1 = new Car(); // Car클래스의 객체인 car1 인스턴스 생성 Car car2 = new Car(); // Car클래스의 객체인 car2 인스턴스 생성 new 연산자를 통해서 객체가 생성되면 해당 인스턴스의 주소가 반환되기 때문에 해당 클래스의 참조형 변수를 사용하여 받아줄 수 있습니다. 객체는 참조형 변수와 동일하게 취급되기 때문에 배열 또.. 이전 1 2 3 4 5 6 7 ··· 10 다음