Dev/Java
-
[Java 응용] 4. 제네릭, 열거형, 이너클래스Dev/Java 2023. 3. 20. 13:18
👀유용한 정보Eclipse 단축키ctrl + h : 파일 전체 검색💡13, 14, 응용3장 피드백 Tipclone() 재정의는 주의하라public interface Cloneable { }@IntrinsicCandidate protected native Object clone() throws CloneNotSupportedException;💡- clone()은 Object 클래스의 메서드이지만, protected로 구현되어 있어 그냥 사용하지 못하게 되어 있다. 기존 clone()은 reflectrion 기능을 활용한 native로 구현되어 있어서 객체를 생성자를 통해 생성해 복사하는 것이 아닌, 정상적이지 못한 방법으로 복사한다. 따라서 객체를 복사하려면 clone() 메서드를 직접 인스턴스를 생성하고..
-
[Java 기초] 14. 표준 클래스 (날짜, 시간)Dev/Java 2023. 3. 20. 13:17
📘 14장 Java 표준 클래스시간(long 형)💡시간은 long 형으로 정의되어 있고, currentTimeMillis() 를 통해 시간을 측정할 수 있다. 날짜 (Date 클래스)💡패키지 : java.util.Date - new Date() : 현재 시간에 대한 Date 인스턴스 생성 - new Date(long) : 과거 또는 미래 시간 인스턴스 생성 - Date.getTime() : 시간 데이터 int형으로 얻기 날짜 (Calendar)💡Calendar.getInstance() : 현재 시간에 대한 캘린더 인스턴스 생성 ( new 생략되어 구현됨 ) Calendar.setTime(Date) : 해당 Date 객체로 캘린더 시간 설정 Calendar.YEAR, Calendar.MONTH, Calen..
-
[Java 응용] 3. 인스턴스 기본 조작Dev/Java 2023. 3. 20. 13:14
📘 응용 3장 인스턴스의 기본 조작Object 클래스의 기본 기능💡- 모든 클래스는 Object 클래스의 메서드를 가지고 있다. (모든 클래스의 신) - Object 타입 변수에는 모든 인스턴스를 대입할 수 있다.Object 클래스의 대표 메서드toString() : 문자열 표현을 얻음equals() : 비교hashCode() : 해시 값을 얻음 toString()💡객체를 표현해주는 방법을 리턴 해주는 메서드오버라이드 하여 원하는 결과를 얻도록 수정할 수 있다. public class Main { public static void main(String[] args) { Hero hero = new Hero(); Hero hero2 = new Hero(); System.out.println(hero); S..
-
[Java 기초] 13. 다형성Dev/Java 2023. 3. 20. 13:13
👀유용한 정보Strack Overflow Trends자주 트렌드 근황을 확인하자EclipseExtract Superclass💡자동으로 상속 관계와 Super 클래스를 자동으로 만들어준다. Type Hierarchy클래스명에서 F4💡해당 클래스의 계층화된 구조를 볼 수 있다.클래스 빠른 이동Ctrl + Shift + R 💡11, 12장 피드백 Tip💡Java 8 이상부터 인터페이스에서 default 키워드를 통해 메소드를 구현할 수 있다. java에서 mixin을 구현하기 위해 사용한다.public interface Human{ default void hear() { } } 💡비어 있는 추상 클래스를 상속하지는 않는다. 하지만, 다형성을 위해 비어있는 인터페이스를 같은 특징들을 가진 클래스들을 묶는 경우는..
-
[Java 기초] 12. 추상클래스와 인터페이스Dev/Java 2023. 3. 20. 13:09
📘 12장 추상클래스와 인터페이스기존의 상속 문제상세 정의가 미정인 메소드를 가진 상속의 재료로 사용될 클래스 대책1. attack() 메소드의 내부를 공백으로 두기💡미래에 하위 자식 클래스가 해당 클래스를 상속받아 오버라이드 할 것을 예상 문제점 : 미래에 해당 메소드를 오버라이드 안 할 가능성이 있다. 의도치 않은 new 사용 추상 클래스💡미 구현된 클래스를 만들 때 추상클래스를 사용한다 추상 메소드 (abstract method)를 가진 추상 클래스public abstract class Character { private String name; private int hp; public Character(String name) { this.name = name; hp = 100; } public St..
-
[Java 기초] 11. 상속(Ingeritance)Dev/Java 2023. 3. 20. 13:05
👀유용한 정보Java 가변 인수public class Main { public void something(int... nums) { int i = nums[0]; } }Eclipse 단축키Ctrl + D : 한 줄 지우기Ctrl + Alt + ↓ : 줄 복사 붙여넣기 💡10장 피드백 Tip💡클래스 내 field에 정의된 변수는 private 정의한 메소드는 public 📘 11장 상속 (Inheritance)💡이전에 만든 클래스와 닮았지만, 일부 다른 클래스를 만들 필요가 있을 경우가 있다. 상속을 하는 이유💡자식 클래스는 부모 클래스에서 정의된 필드와 메서드를 물려받는다. 이를 통해 자식 클래스는 부모 클래스에서 이미 구현된 기능을 사용할 수 있다. 자식 클래스는 부모 클래스에 새로운 필드와 메서드를 ..
-
[Java 기초] 10. 캡슐화(Encapsulation)Dev/Java 2023. 3. 20. 13:03
📘 10장 캡슐화(Encapsulation)멤버 변수 액세스 제어접근 지정자 (access modifier) HP를 private로 지정 💡생성자, 메소드는 일반적으로 다른 코드에서 활용하기 위해 주로 public으로 지정한다. 💡+ : public - : private ~ : default 멤버 액세스 지정 정석💡필드 속성은 주로 private 메소드는 주로 public * static 변수는 public을 사용 getter와 setter모든 필드를 private로 지정 해서 다른 클래스로부터 접근이 안 되도록 막는다.따라서, 메소드를 통해서 멤버 변수에 접근 하도록 클래스를 설계하는 것이 기본이다!Name에 대한 getter와 setter 메소드 King 클래스의 talk() 메소드를 수정 캡슐화 전..
-
[Java 기초] 9. 클래스(Class)Dev/Java 2023. 3. 20. 13:01
👀유용한 정보Eclipsectrl + 3 : 기능 검색Alt + Shift + R : raname 💡8장 피드백 Tip💡Random()과 같은 주로 재사용 하는 객체는 필드에 생성💡계산 logic부분을 Math.min(), Math.max()와 같은 메소드를 잘 활용하자 📘 9장 Java 클래스클래스 형과 참조💡new 로 생성된 instance는 메모리의 heap 영역에 할당된다.💡답 : 200 클래스 상호작용Sword 형 필드를 가지는 클래스💡Hero 클래스에서 Sword(검) 객체를 생성해 연관 관계를 가지도록 했다.영웅에 검 장착💡main 메소드에서 hero 내부의 sword 객체에 접근할 수 있다. 클래스 형을 인자나 리턴 값으로 사용💡Hero 객체를 인자로 받아 해당 hero 객체의 hp 속성 ..