Java
-
자바 step10 - interface(자바의 람다함수, override)Java 2022. 11. 6. 15:17
package test.mypac; /* * 추상메소드가 1개인 인터페이스 * * 야는 좀 특별함... */ public interface Drill { public void hole(); } interface로 Drill 생성하였다. package test.main; import test.mypac.Drill; public class MainClass04 { public static void main(String[] args) { useDrill(new Drill() { @Override public void hole() { System.out.println("위이이이이이잉~~~!!!!!"); } }); useDrill(()->{ System.out.println("위이이잉~~~!!!!!"); }); ..
-
자바 step10 - interface(implements, orverride, final 예약어)Java 2022. 11. 6. 15:11
[ interface ] - 생성자가 없다 (단독 객체 생성 불가). - 구현된 메소드는 가질수 없다 ( 추상 메소드만 가질수 있다 ). - 필드는 static final 상수만 가질수 있다(JS로 치면 const, 한번 선언하면 변경할 수 없다.). - data type 의 역할을 할수 있다. - interface type 의 참조값이 필요하면 구현(implements) 클래스를 만들어서 객체를 생성해야 한다. - 클래스 상속은 단일 상속이지만, 인터페이스는 다중 구현이 가능하다. package test.mypac; public interface Remocon { /* * 필드는 static final 필드만 가질 수 있다. (static final 생략 가능) */ public static final..
-
자바 step9 - AbstractClass(override)Java 2022. 11. 6. 14:53
Weapon class package test.mypac; /* * 클래스를 만들어서 우리에게 사용하도록 제공해주는 개발자가(유틸리티나 프레임워크를 공급해주는) 있다고 가정하자. * * 그 개발자는 특정 메소드를 우리의 상황에 맞게 구현하도록 미완성인 메소드를 제공할 때도 있다. * * 미완성 된 메소드를 추상(abstract) 메소드라고 하며 추상메소드를 하나이상 가지고 있는 클래스를 * * 추상(abstract) 클래스라고 한다. * * 추상 메소드와 추상 클래스를 만들기 위해서는 abstract 예약어가 필요하다. * */ public abstract class Weapon { //무기 작동을 준비하는 메소드 public void prepare() { System.out.println("무기 작동을..
-
자바 step9 - AbstractClass(클래스 안에 클래스(내부 클래스))Java 2022. 11. 6. 14:42
package test.mypac; public class Zoo { /* * 클래스 안에 정의할 수 있는게 뭐가 있지요? * * 생성자, 필드, 메소드, 클래스 */ //클래스 안에 클래스(내부 클래스) public class Monkey{ public void say() { System.out.println("안녕! 나는 원숭이야"); } } //내부 클래스 public class Tiger{ public void say() { System.out.println("안녕!~ 나는 호랑이야"); } } //메소드 public Monkey getMonkey() { //내부 클래스로 객체를 생성해서 리턴해주는 메소드 return new Monkey(); } public Tiger getTiger() { re..
-
자바 step9 - AbstractClass(override)Java 2022. 11. 6. 14:35
[ 추상클래스 (Abstract Class) ] - class 예약어 앞에 abstract 를 명시해서 클래스를 정의한다. - 형태만 정의되고 실제 구현은 되지 않은 메소드가 존재할수 있다. - 형태만 정의된 메소드를 만들때는 abstract 예약어를 붙어서 메소드를 정의한다. - 생성자는 존재하지만 단독으로 객체 생성은 불가하다 - 추상클래스 Type 의 id 가 필요하다면 추상클래스를 상속받은 자식클래스를 정의해서 객체 생성한다. - 추상클래스를 상속받은 자식클래스는 부모의 추상메소드를 모두 오버라이드(재정의) 해야한다. Weapon class를 생성하였다. package test.mypac; /* * 클래스를 만들어서 우리에게 사용하도록 제공해주는 개발자가(유틸리티나 프레임워크를 공급해주는) 있다고..
-
Arrays class 메소드(배열 복사, 배열 항복 정렬, 배열 항목 검색, 배열 동일 항목 채우기, 배열(Array) 항목 비교Java/Java 개인 공부 2022. 11. 1. 20:31
Arrays 클래스는 항목 정렬, 항목 검색, 항목 비교와 같은 메소드들을 제공한다 모든 메소드는 static(정적) 메소드이므로, Aarays 클래스로 바로 사용이 가능하다 배열 복사 char[] arr2 = Arrays.copyOf(arr1, arr1.length); // arr1 배열 arr1.length 만큼을 arr2로 복사 char[] arr3 = Arrays.copyOfRange(arr1, 1, 3); // arr1[1] ~ arr1[2] 를 arr3[0] ~ arr3[1] 로 복사 // 1~3에서 끝 인덱스는 포함되지 않는다 배열 항목 정렬 Arrays.sort(arr); 기본 타입 또는 String 배열은 위와 같이 arr 배열을 사전순(오름차순)으로 정렬할 수 있다 만약 사용자 정의 클..
-
자바 step8 - Extends(super, protected)Java 2022. 10. 26. 21:19
protected = 동일한 package 혹은 상속관계에서 자식에서 접근 가능 임의로 아무런 값이 없는 Engine 클래스 생성 package test.auto; public class Engine { } Car class 생성 package test.auto; /* * - 접근 지정자 접근범위 * * public : 어디에서나 접근 가능 * protected : 동일한 package 혹은 상속관계에서 자식에서 접근 가능 * default : 동일안 package 안에서만 접근 가능 * private : 동일한 클래스 혹은 동일한 객체 안에서만 접근가능 * * - 접근 지정자를 붙이는 위치 * * 1. 클래스를 선언 할때 * 2. 생성자 * 3. 필드 * 4. 메소드 * * 클래스는 default 와 ..
-
자바 step8 - Extends(extends, casting, Override, super)Java 2022. 10. 26. 21:05
Phone class 생성 package test.mypac; public class Phone { //어떤 클래스도 상속 받지 않으면 자동으로 extends Object 된다. //생성자 public Phone() { System.out.println("Phone 생성자 호출됨"); } //전화거는 메소드 public void call() { System.out.println("전화를 걸어요!"); } } package test.mypac; public class HandPhone extends Phone { //생성자 public HandPhone() { System.out.println("HandPhone 생성자 호출됨"); } public void mobileCall() { System.out.p..