JAVA

JAVA/기본 이론

JAVA | Generic

제네릭 (Generic) - 클래스를 정의할 때 나중에 타입을 지정할 수 있도록 설계해두는 것 - 해당 클래스의 인스턴스 생성 시 를 통해 제네릭 타입을 지정할 수 있다. - 제네릭에는 기본 타입을 사용할 수 없다. (Integer, Character, Double, Float, Boolean, ...) - 제네릭은 여러개 지정할 수도 있다. import myobj.FishBread; import myobj2.MyFactory; public class D03_Generic { public static void main(String[] args) { MyFactory appleFactory = new MyFactory(); appleFactory.putMaterial(new Apple()); FishBre..

JAVA/기본 이론

JAVA | HashSet

Set - 집합을 클래스로 구현해 놓은 것 - 중복을 허용하지 않는다. Hash - 같은 값을 넣으면 항상 일정한 값이 나와야하는 단방향성 알고리즘 - 중복 체크에 많이 사용된다. - 해쉬의 결과는 규칙적이지 않기 때문에 순서를 알 수 없다. java.util.HashSet - 해쉬 알고리즘을 사용하는 Set - 중복된 데이터를 허용하지 않으며 순서가 없다. (index가 없음) import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class D02_HashSet { public static void main(String[] args) { HashSet numbers =..

JAVA/기본 이론

JAVA | ArrayList

java.util.ArrayList - 배열과 유사하지만 크기가 자동으로 조절된다는 장점이 있는 자료구조 - 배열처럼 데이터를 순차적으로 저장한다. - 모든 데이터를 순차적으로 읽는 속도가 가장 빠른 자료구조이다. 자료구조 (Data Structure) - 데이터를 효율적으로 보관할 수 있는 여러가지 방식들 - 상황마다 데이터를 가장 효율적으로 다룰 수 있는 방법에 대해 연구해놓은 결과물 (데이터 검색, 탐색, 정렬, 추가, 삭제 등) Java Collection Interface - 자바에서 제공하는 자료구조 인터페이스 - Collection은 언제든지 다른 컬렉션으로 쉽게 변환이 가능하다. - Collection 인터페이스를 구현한 클래스로는 List, Set 등이 있다. import java.uti..

JAVA/기본 이론

JAVA | 인터페이스(Interface)

인터페이스 (Interface) - 추상 클래스처럼 내부에 추상 메서드를 지닐 수 있다. - 인터페이스 내부에 선언하는 모든 변수들은 자동으로 final static이 된다. - 인터페이스 내부에 선언하는 메서드는 모두 자동으로 abstract public이 된다. - 추상 클래스는 하나밖에 상속받을 수 없지만, 인터페이스는 여러개 구현 받을 수 있다. - 인터페이스를 통해 하나의 클래스가 더욱 다양한 형태를 지닐 수 있게 된다. - 추상 클래스에는 인스턴스 영역이 존재하지만, 인터페이스에는 인스턴스 영역이 아예 없다. package myinterface; public interface Swimmer { // abstract : 자식 클래스로 구현을 미룬다. public abstract void swin..

JAVA/기본 이론

JAVA | 추상 클래스와 추상 메서드

추상 클래스 (abstract class) - 추상 메서드를 가지고 있는 클래스 - 추상 클래스 내부에는 완성되지 않은 메서드가 들어있으므로 인스턴스를 생성할 수 없다. 추상 메서드 (abstract method) - 선언만 해놓고 구현은 상속받은 자식들에게 미루는 메서드 - 오버라이드를 위한 메서드 - 자식 클래스에게 오버라이드를 강제하는 효과가 있다. import myobj2.DataScienceStudent; import myobj2.Student; public class C16_AbstractClass { public static void main(String[] args) { Student s = new DataScienceStudent(); // 반드시 오버라이드 해야하는 메서드를 쉽게 눈치챌..

JAVA/기본 이론

JAVA | final

final - 변수 앞에 final을 붙이면 이후로는 변경할 수 없는 값이 된다. (상수) - 메서드 앞에 final을 붙이면 오버라이드가 금지된다. - 클래스에 앞에 final을 붙이면 상속이 금지된다. public class C15_Final { public static void main(String[] args) { // 변수 선언 시 앞에 final을 붙여주면 해당 변수는 이후 변경 불가능 final int num = 10; final double GA = 9.80665; final double PI = 3.14; final String GOAT = "메시"; // 나중에 프로젝트가 복잡해졌을 때 실수하는 것을 방지하는 용도 // GA = 123; } }

JAVA/기본 이론

JAVA | 인스턴스 생명 주기(Instance Life Cycle)

인스턴스 생명 주기 - 인스턴스가 생성될 때 실행되는 코드의 순서를 알아보자 1. 스태틱 영역 (첫 인스턴스 생성 시에 딱 한 번 실행) 2. 인스턴스 영역 (새 인스턴스 생성 시마다 실행) 3. 생성자 (새 인스턴스 생성 시마다 실행) - 매개변수로 전달 받을 필요 없는 값들 -> 각 영역을 사용 - 생성자의 매개변수로 전달받아서 초기화 해야하는 경우 -> 생성자 public class C14_InstanceLifeCycle { public static void main(String[] args) { TestClass t = new TestClass(); t.doSomething(); for (int i = 0; i < 3; ++i) { t = new TestClass(); t.doSomething()..

JAVA/기본 이론

JAVA | 지역 내부 클래스(Local Inner Class)

지역 내부 클래스 - 클래스는 메서드 내부(Local)에서도 선언할 수 있다. - 해당 메서드 밖에서는 사용할 수 없는 아주 일시적인 클래스 - 메서드가 끝나면 클래스의 수명도 끝난다. 익명 지역 내부 클래스 - 메서드 내부에서 클래스를 바로 상속받아 사용하는 방식 - 클래스 이름을 지정할 수 없기 때문에 익명 클래스라고 부른다. import School.ProgrammingStudent; import School.Student; public class C13_LocalInnerClass { public static void main(String[] args) { Student s = new Student(); // 바로 Student 클래스를 상속받아 마음대로 고쳐버리는 행위 Student s2 = n..

로아다
'JAVA' 카테고리의 글 목록 (8 Page)