Java/정리 46

상속

객체 간의 상속은 어떤 의미일까? ​ 클래스 상속 ​ ● 새로운 클래스를 정의 할 때 이미 구현된 클래스를 상속(inheritance) 받아서 속성이나 기능을 확장하여 클래스를 구현함 ● 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할때 기존 클래스를 상속함 ​ ​ ● 상속하는 클래스 : 상위 클래스, parent class, super class ● 상속받는 클래스 : 하위 클래스, child class, subclass ​ ​ 상속을 구현 하는 경우 ​ ● 상위 클래스는 하위 클래스 보다 더 일반적인 개념과 기능을 가짐 ● 하위 클래스는 상위 클래스 보다 더 구체적인 개념과 기능을 가짐 ● 하위 클래스가 상위 클래스의 속성과 기능을 확장 (extends)한다는 의미 ​ ​ ​ 상..

Java/정리 2021.08.27

객체 배열

객체 배열 선언과 구현 ​ 기본 자료형 배열은 선언과 동시에 배열의 크기만큼의 메모리가 할당되지만, 객체 배열의 경우엔 요소가 되는 객체의 주소가 들어갈 메모리만 할당되고(null) 각 요소 객체는 생성하여 저장해야 함 ​ ​ ​ Book.java public class Book { private String title; private String author; public Book() {} public Book(String title, String author) { this.title = title; this.author = author; } public String getTitle() { return title; } public void setTitle(String title) { this.title..

Java/정리 2021.08.26

배열

배열이란? ​ 배열(array)이란 연관된 데이터를 모아서 통으로 관리하기 위해서 사용하는 데이터 타입이다. 변수가 하나의 데이터를 저장하기 위한 것이라면 배열은 여러 개의 데이터를 하나의 변수에 저장하기 위한 것이라고 할 수 있다. ​ ● 동일한 자료형의 순차적 자료 구조 ● 인덱스 연산자[]를 이용하여 빠른 참조가 가능 ● 물리적 위치와 논리적 위치가 동일 ● 배열의 순서는 0부터 시작 ● 자바에서는 객체 배열을 구현한 ArrayList를 많이 활용함 ​ ​ 배열 선언과 초기화 ​ 배열 선언하기 int[] arr1 = new int[10]; int arr2[] = new int[10]; ​ 배열 초기화 하기 ​ ● 배열은 선언과 동시에 자료형에 따라 초기화 됨 ( 정수는 0, 실수는 0.0, 객체는 ..

Java/정리 2021.08.26

Static 싱글톤 패턴

싱글톤 패턴이란? ​ ● 프로그램에서 인스턴스가 단 한 개만 생성되어야 하는 경우 사용하는 디자인 패턴 ● static 변수, 메서드를 활용하여 구현 할 수 있음 ​ ​ 싱글톤 패턴으로 회사 객체 구현하기 ​ 1. 생성자는 private으로 선언 private Company() {}; 2. 클래스 내부에 유일한 private 인스턴스(객체) 생성 private static Company instance = new Company(); 3. 외부에서 유일한 인스턴스를 참조할 수 있는 public 메서드 제공 public static Company getInstance() { if( instance == null) { instance = new Company(); } return instance; } ​ ​ ..

Java/정리 2021.08.25

static 메서드

static 메서드 만들기 ​ serialNum 변수를 private으로 선언하고 getter/setter 구현 ​ ​ ​ Employee.java ... private static int serialNum = 1000; ... public static int getSerialNum() { return serialNum; } public static void setSerialNum(int serialNum) { Employee.serialNum = serialNum; } ​ ​ static 메서드(클래스 메서드)에서는 인스턴스 변수를 사용할 수 없다 ​ public static void setSerialNum(int serialNum) { int i = 0; employeeName = "Lee"; //오..

Java/정리 2021.08.25

Static

공통으로 사용하는 변수가 필요한 경우 ​ ● 여러 인스턴스가 공유하는 기준 값이 필요한 경우 ● 학생마다 새로운 학번 생성 ● 카드회사에서 카드를 새로 발급할때마다 새로운 카드 번호를 부여 ● 회사에 사원이 입사할때 마다 새로운 사번이 필요한 ● 은행에서 대기표를 뽑을 경우(2대 이상) ​ ​ ​ ​ static 변수 선언과 사용하기 ​ ● 선언 방법 - static int serialNum; ● 인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당 ● 클래스 변수, 정적변수라고도 함 ● 인스턴스 생성과 상관 없이 사용 가능하므로 클래스 이름으로 직접 참조 ● 사용방법 - Student.serialNum = 100; ​ ​ ​ static 변수 테스트하기 ​ E..

Java/정리 2021.08.25

this

this가 하는 일 ​ ● 인스턴스 자신의 메모리를 가리킴 ● 생성자에서 또 다른 생성자를 호출 할때 사용 ● 자신의 주소(참조값)을 반환 함 ​ public class Person { String name; int age; public Person() { this("이름없음", 1); } public Person(String name, int age) { this.name = name; this.age = age; } } ​ 자신의 주소를 반환하는 this public class Person { String name; int age; public Person() { this("이름없음", 1); } public Person(String name, int age) { this.name = name; th..

Java/정리 2021.08.25

접근 제어 지시자(get/set)

접근 제어 지시자 (accesss modifier) ​ ▶ 클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드 ​ ● private : 같은 클래스 내부에서만 접근 가능 ( 외부 클래스, 상속 관계의 클래스에서도 접근 불가) ● 아무것도 없음 (default) : 같은 패키지 내부에서만 접근 가능 ( 상속 관계라도 패키지가 다르면 접근 불가) ● protected : 같은 패키지나 상속관계의 클래스에서 접근 가능하고 그 외 외부에서는 접근 할 수 없음 ● public : 클래스의 외부 어디서나 접근 할 수 있음 ​ ​ get()/ set() 메서드 ​ ● private 으로 선언된 멤버 변수 (필드)에 대해 접근, 수정할 수 있는 메서드를 public으로 제공..

Java/정리 2021.08.25

참조자료형변수

​ ● 클래스형으로 변수를 선언 ● 기본 자료형은 사용하는 메모리의 크기가 정해져 있지만, 참조 자료형은 클래스에 따라 다름 ● 참조 자료형을 사용 할때는 해당 변수에 대해 생성하여야 함 (String 클래스는 예외적으로 생성하지 않고 사용할 수 있음) ​ ​ 참조 자료형 정의하여 사용하기 ​ ● 학생(Student)과 과목(Subject)에 대한 클래스를 분리하여 사용하고 Subject 클래스를 활용하여 수강한 과목들의 변수의 타입으로 선언 ​ ​ ​ Subject.java public class Subject { String subjectName; int score; int subjectID; } ​ ​ Student.java public class Student { int studentID; Str..

Java/정리 2021.08.25

생성자

생성자 ​ ● 객체를 생성할 때 new 키워드와 함께 사용 - new Student(); ● 생성자는 일반 함수처럼 기능을 호출하는 것이 아니고 객체를 생성하기 위해 new 와 함께 호출 됨 ● 객체가 생성될 때 변수나 상수를 초기화 하거나 다른 초기화 기능을 수행하는 메서드를 호출 함 ● 생성자는 반환 값이 없고, 클래스의 이름과 동일 ● 대부분의 생성자는 외부에서 접근 가능하지만, 필요에 의해 private 으로 선언되는 경우도 있음 ​ ​ 기본 생성자 (default constructor) ​ ● 클래스에는 반드시 적어도 하나 이상의 생성자가 존재한다. ● 클래스에 생성자를 구현하지 않아도 new 키워드와 함께 생성자를 호출할 수 있음 ● 클래스에 생성자가 하나도 없는 경우 컴파일러가 생성자 코드를..

Java/정리 2021.08.25