본문 바로가기

Java/information

[자바/JAVA] 객체와 인스턴스

리턴값이 없는 메소드는 리턴 타입을 void로 해야한다.
리턴 타입이 있는 메소드는 리턴값을 지정하기 위해 반드시 return문이 있어야 한다.
매개값의 개수를 모를 경우 배열 혹은 ...을 이용해서 매개 변수를 선언할수 있다.
같은 이름의 메소드를 여러 개 선언하는 것을 메소드의 오버로딩이라고 한다.
오버로딩은 동일한 이름의 메소드를 여러 개 선언하는 것을 말한다.
리턴 타입이 꼭 달라야하는것은 아니다.
매개 변수의 타입, 개수, 순서를 다르게 선언해야한다.
매개값의 타입 및 개수에 따라 호출될 메소드가 선택된다.

문자열의 주소값과 속성값이 모두 같은 것을 비교할때는 ==이 필요하고, 문자열 값만 같은지 비교할 때에는 equals("문자열") 메소드가 필요하다.

클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어 있다. 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스라고 한다. 그리고 클래스로부터 객체를 만드는 과정을 인스턴스화라고 한다.
하나의 클래스로부터 여러 개의 인스턴스를 만들 수 있는데 이것은 동일한 설계도로부터 여러 대의 자동차를 만드는 것과 동일하다.
설계도는 클래스, 클래스로 만든 객체는 인스턴스

객체란 클래스를 토대로 만들어진 컴퓨터 메모리상에 무언가를 말한다.

필드는 객체의 고유 데이터, 부품 객체, 상태 정보를 저장하는 곳이다. 선언 형태는 변수와 비슷하지만, 필드를 변수라고 부르지는 않는다. 
변수는 생성자와 메소드 내에서만 사용되고 생성자와 메소드가 실행 종료되면 자동 소멸된다.
하지만 필드는 생성자와 메소드 전체에서 사용되며 객체가 소멸되지 않는 한 객체와 함께 존재한다.

인스턴스를 생성하는 new 키워드
객체를 생성하려면 new 키워드를 사용
new 키워드를 이용하면 메모리에 인스턴스 속성을 저장할 수 있는 공간이 확보
인스턴스 참조변수 또는 레퍼런스 변수 : 인스턴스를 가리키는 변수
하나의 레퍼런스 변수에 객체를 생성하고, 또 다른 레퍼런스 변수에 할당
다른 두 레퍼런스 변수가 하나의 인스턴스를 공유

클래스는 두 가지 용도가 있다. 하나는 라이브러리용이고 다른 하나는 실행용이다.
라이브러리 클래스는 다른 클래스에서 이용할 목적으로 설계된다. 프로그램 전체에서 사용되는 클래스가 100개라면 99개는 라이브러리 클래스이고 단 하나가 실행 클래스이다.
실행 클래스는 프로그램의 실행 진입점인 main() 메소드를 제공하는 역할을 한다.

클래스에는 객체가 가져야 할 구성 멤버가 선언된다.
구성 멤버에는 필드, 생성자, 메소드가 있다. 이 구성 멤버들은 복수의 개수로 작성될 수 있다.
필드(Field) : 객체의 데이터가 저장되는 곳
생성자(Constructor) : 객체 생성 시 초기화 역할 담당
메소드(method) : 객체의 동작에 해당하는 실행 블록

필드
--객체의 고유 데이터, 객체가 가져야할 부품, 객체의 현재 상태 데이터를 저장하는 곳으로
타입은 필드에 저장할 데이터의 종류를 결정한다. 타입에는 기본타입과 참조타입(배열, 열거,인터페이스)이 모두 올 수 있다.
필드의 초기값은 필드 선언시 주어질 수도 있고 생략될 수도 있다.
필드를 사용한다는 것은 필드값을 읽고 변경하는 작업을 말한다. 클래스 내부의 생성자나 메소드에서 사용할 경우 단순히 필드 이름으로 읽고 변경하면 되지만,
클래스 외부에서 사용할 경우 우선적으로 클래스로부터 객체를 생성한 뒤 필드를 사용해야 한다. 그 이유는 필드가 객체에 소속된 데이터이므로 객체가 존재하지 않으면 필드도 존재하지 않기 때문이다.

클래스명은 대문자로 시작해야 한다.
클래스는 필드만 가질수도 있고 메소드만 가질수도 있고 필드, 메소드를 동시에 가질수도 있다.

필드에는 4가지 접근 제한자가 있다.
public - 어디서나 접근 가능, 다른 패키지에서도 접근이 가능하다.
protected - 같은 패키지 안에서 접근이 가능 + 다른 패키지에 속한 클래스가 해당 클래스의 자식 클래스일 때만 접근 가능
default - 같은 클래스, 같은 패키지 안에서 접근 가능 (생략이 가능한 기본 설정이다)
private - 같은 클래스 안에서만 접근 가능

클래스는 앞에 붙을 수 있는 접근 제한자로 public, default 두가지 뿐이다.
하나의 파일에 클래스가 여러개 있는 경우, 단 한개의 클래스만 public 키워드가 붙는다.
그렇지만 모든 클래스에 public 키워드가 없을 수도 있다.

'Java > information' 카테고리의 다른 글

[자바/JAVA] 헷갈리는 용어 정확하게 정리  (0) 2023.04.25
[자바/JAVA] 생성자  (0) 2023.04.20
[자바/JAVA] 정적 멤버와 메소드 오버로딩  (0) 2023.04.14
[자바/JAVA] 객체란  (0) 2023.04.12
[자바/JAVA] 배열  (0) 2023.04.10