Java (11) 썸네일형 리스트형 [Java] 얕은 복사(shallow copy)와 깊은 복사(deep copy) title과 author을 속성으로하는 Book객체를 모아둔 배열이 있다고 합시다. 이 객체 배열의 복사 종류는 두가지가 있습니다. 01. 얕은 복사(shallow copy) 얕은 복사의 경우 주소값만 복사되기 때문에 원본인 bookArray에서 속성값이 변경된다면 bookCopyArray 또한 수정된 값이 반영됩니다. 02. 깊은 복사(deep copy) 깊은 복사의 경우 인스턴스가 새로 생성되어 속성 값이 복사되기 때문에 bookArray 배열에 저장되어 있는 각 인스턴스의 주소값과 bookCopyArray 배열에 저장되어 있는 각 인스턴스의 주소 값은 서로 다릅니다. 때문에 얕은 복사와 달리 원본인 bookArray에서 속성값을 변경하더라도 bookCopyArray에는 수정된 속성값이 반영되지 않습.. [Java] 프로그램에서의 변수의 유형 변수 유형 선언 위치 사용 범위 메모리 생성과 소멸 지역 변수 (로컬 변수) 함수 내부에 선언 함수 내부에서만 사용 스택 함수가 호출될 때 생성되고 함수가 끝나면 소멸 멤버 변수 (인스턴스 변수) 클래스 멤버 변수로 선언 클래스 내부에서 사용하고 private이 아니면 참조 변수로 다른 클래스에서 사용 가능 힙 인스턴스가 생성될 때 힙에 생성되고, 가비지 컬렉터가 메모리를 수거할 때 소멸 static 변수 (클래스 변수) static 예약어를 사용하여 클래스 내부에 선언 클래스 내부에서 사용하고 private이 아니면 클래스 이름으로 다른 클래스에서 사용 가능 데이터 영역 프로그램이 처음 시작할 때 상수와 함께 데이터 영역에 생성되고 프로그램이 끝나고 메모리를 해제할 때 소멸 [Java] static 변수, 메서드 01. static 변수 여러 인스턴스가 하나의 값을 공유할 필요가 있을 때 사용합니다. static 변수는 프로그램 로딩 시 데이터 영역에 생성됩니다. 인스턴스의 생성과 상관 없이 사용할 수 있으므로 클래스 이름으로 참조합니다. 클래스 변수, 정적 변수라고도 합니다. 02. static 메서드 static 변수를 위한 기능을 제공합니다. (static 변수의 getter, setter 등) static 메서드는 프로그램이 로딩될 때 생성되고, 인스턴스 변수는 생성자를 통해 선언할 때 생성되기 때문에 static 메서드에서 인스턴스 변수를 사용할 수 없습니다. 클래스 이름으로 참조하여 사용합니다. 클래스 메서드, 정적 메서드라고도 합니다. [Java] this에 대하여 01. this의 역할 자신의 메모리를 가리킵니다. 생성자에서 다른 생성자를 호출합니다. 인스턴스 자신의 주소를 반환합니다. 01-01. 자기 자신을 메모리를 가리키는 this 01-02. 생성자에서 다른 생성자를 호출하는 this public Person() { this("이름 없음", 1); // public Person(String name, int age) 생성자를 호출 } public Person(String name, int age) { this.name = name; this.age = age; } ※ 생성자에서 this로 다른 생성자를 호출할 경우 호출하는 statement가 항상 첫번째 줄이여야 합니다. 01-03. 인스턴스 자신의 주소를 반환하는 this // class Person p.. [Java] 정보 은닉 01. 접근 제어자(access modifier) 변수, 메서드, 생성자에 대한 접근 권한 지정 private private가 붙은 변수, 메소드는 해당 클래스에서만 접근이 가능합니다. default(기본 접근 제어자) 접근 제어자가 없는 변수, 메소드는 default 접근 제어자가 되어 해당 패키지 내에서만 접근이 가능합니다. protected protected가 붙은 변수, 메소드는 동일 패키지내의 클래스 또는 해당 클래스를 상속받은 외부 패키지의 클래스에서 접근 가능합니다. public public이 붙은 변수, 메소드는 모든 곳에서 접근이 가능합니다. ※ 밑에 있을 수록 많은 접근을 허용합니다. private 변수를 외부에서 접근하게 하려면 public 메서드로 접근합니다. (getData, se.. [Java] 자바 용어 정리 용어 설명 객체 객체 지향 프로그램의 대상 클래스 객체를 프로그래밍하기 위해 코드로 만든 상태 인스턴스 클래스가 힙 메모리에 생성된 상태 멤버 변수 클래스의 속성 메서드 클래스의 기능 참조 변수 메모리에 생성된 인스턴스를 가리키는 변수 참조 값 생성된 인스턴스의 메모리 주소 값 [Java] 함수와 메서드 01. 함수란 무엇인가요? 함수(function): 하나의 기능을 수행하는 일련의 코드 함수는 호출하여 사용하고 기능이 수행된 후 값을 반환할 수 있습니다. 함수로 구현된 기능은 여러 곳에서 호출되어 사용될 수 있습니다. 02. 함수 정의 함수는 이름, 매개변수, 반환 값, 함수 몸체(body)로 구성됩니다. ※ 반환 값이 없을 경우 반환 값의 타입은 void로 명시해줍니다. 03. 메서드란 무엇인가요? 메서드(method): 객체의 기능을 구현하기 위해 클래스 내부에 구현되는 함수 메서드를 구현함으로써 객체의 기능이 구현됩니다. 메서드 이름은 링크 참조 [Java] 객체지향 프로그래밍과 클래스 01. 객체란 무엇인가요? 객체(Object): 구체적, 추상적 데이터의 단위 ※ 사람, 자동차 같은 일반 명사 뿐만 아니라 주문, 생산, 관리같이 동사의 명사형도 객체가 될 수 있습니다. 02. 객체 지향 프로그래밍이란? 객체 지향 프로그래밍(Object Oriented Programmig: OOP): 객체를 기반으로 하는 프로그래밍 객체를 정의하고, 객체의 기능을 구현하며, 객체간의 협력(cooperation)을 구현 ※ 절차 지향 프로그래밍(Procedural Programming): 시간이나 사건의 흐름에 따른 구현 03. 클래스(Class) 객체를 코드로 구현한 것 개체 지향 프로그래밍의 가장 기본 요소 객체의 청사진(blueprint) 04. 멤버 변수, 메서드 멤버 변수(member vari.. 이전 1 2 다음