전체 글173 [Java] 자바 instanceof 연산자 정리 및 예제코드 - CodeRecorder 우리가 강제타입 변환을 하는 이유는 강제타입 변환을해서 그 변환한 객체에 있는 맴버를 사용하기위함이다 ! 그럴 때 우리는 강제타입 변환을 할수있는지 확인하고 실행하게 된다면 참 편리할것이다 그래서 나온게 instanceof 연산자 이다 ! 이 메소드를 보면 매개변수에 Vehicle 타입의 vehicle 이 들어올수있다 즉 , class Bus implements Vehicle ,class Taxi implements Vehicle // Vehicle 을 상속받은 bus 나 texi 가 들어올수있다는 얘기이고, 그렇게 들어온 vehicle 객체가 bus 를 참조하고있는지 , texi 를 참조하고있는지 확인하는게 (강제 타입변환을 할수있는 놈인지) instanceof 연산자 이다 ! -------------.. 2022. 10. 8. [Java] 자바 인터페이스 강제 타입변환(Casting) 정리 - CodeRecorder 강제 타입 변환(Casting)은 ? 인터페이스 타입으로 자동 타입 변환 후 , 강제로 다시 구현 클래스 타입으로 변환시키는 행동이다 ! // 구현 클래스 타입에 선언된 다른 맴버(필드,메소드) 를 사용하기위해서 ! Vehicle 이라는 인터페이스가있고 , 그것을 상속받은 Bus 라는 클래스가있다 ! Vehicle 을 상속받은 new Bus(); 는 자동으로 Vehicle타입으로 변환이된다 (자동 타입변환) 그럴경우 Vehicle 안에 맴버는 사용이 가능하나 , Bus클래스안의 메소드는 사용이 불가능하다! Bus 안의 맴버를 사용하려면 ! ? (Bus) 라는 변수 앞에 붙여서 강제 타입변환으로 바꿔줘야 한다 ! //근데 이게 항상 성립되는것은 아니다 ! 이렇게 되는 이유는 ? 버스에는 승차요금을 확인하는.. 2022. 10. 8. [Java] 자바 인터페이스의 자동 타입변환 과 다형성 (Promotion) 정리 및 예제코드 - CodeRecorder interface A class B implements A class C implements A class D extends B class E extends C 이렇게 만들수 있고 ! A를 조상으로 가지는 각자의 생성자를 만들었을때 모두다 A에 대입할수있다는 뜻이다 ! 이러한 성질을 이용하는 예시를 들어보면 자동차 클래스를 만들려고한다 근데 큰 개념인 타이어라는 인터페이스가 있고 / 그 인터페이스를 상속받은 HankookTire 가 있다 ! 그리고 Car 라는 클래스를 보게되면 4개의 필드가 다 Tire 로 되어있고 - Tire 을 상속받은 한국 타이어가 들어가있고 메소드에는 4개의 타이어가 roll이라는 메소드로 돌아게 된다 ! 이렇게 myCar 라는 변수명에 Car() 객체를 넣고 myCar 에 앞 .. 2022. 10. 8. [Java] 자바 인터페이스 다형성(Interface polymorphism) 정리 - CodeRecorder 하나의 타입에 여러가지 객체를 대입해서 다양한 실행결과를 얻는것을 말한다 ! 다형성을 구현하는 기술은 상속 또는 인터페이스의 자동타입변환(Promotion) 과 오버라이딩(Overriding) 이 있다 다형성을 함으로써 우리는 객체를 여러가지 버전으로 바꿔서 쓸수있기 때문에 여러가지 결과를 만들수있고 , 유지보수 하기에 좋다 예를들어 I의 인터페이스를 상속받은 A와 B가 있는데 A에게 문제가 생기면 바로 B 라는 객체를 이용할수있다 A 와 B 둘다 method1() 이라는 메소드를 사용하고, 각자 다른 method1 의 내용을 가지고 있어서 자유롭게 쓸수있다 ! 이렇게 매개변수 값으로 많이 들어와서 , 문제에도 종종 나온다 ! RemoteControl 을 상속받은 new Television() 이나 ne.. 2022. 10. 7. [Java] 자바 문자열 비교 equalsIgnoreCase() , equals() 정리 및 예제코드 - CodeRecorder 자바에는 여러가지 문자열 비교 방법이 있는데 그중 equals 와 equalsIgnoreCase 메소드가 가장 많이 쓰인다 equalsIgnoreCase를 자주쓰는 경우는 대소문자 구분없이 비교할 떄 많이 사용됩니다. equals 는 대소문자를 비교하지만 equalsIgnoreCases는 대소문자 구분없이 문자열 자체만으로 비교를 합니다. package Blog.String; public class EqualsIgnoreCase { public static void main(String[] args) { String s1 = "start"; String s2 = "Start"; System.out.println(s1.equals(s2)? "서로 같은 문자입니다.": "서로 다른 문자입니다."); Syst.. 2022. 10. 7. [Java] 다중 인터페이스(interface) 구현 정리 및 예제코드 - CodeRecorder 구현객 체는 여러개의 인터페이스를 통해 구현객체를 사용할수있음 그 안에는 상수필드 , 메소드 등등 .. 구현 클래스는 인터페이스A ,인터페이스B 를 implements 뒤에 쉼표로 여러개 나열해서 사용가능 ! package ch08.sec08; public interface RemoteControl { //추상 메소드 void turnOn(); void turnOff(); } RemoteControl 이라는 인터페이스와 package ch08.sec08; public interface Searchable { //추상 메소드 void search(String url); } Searchable 이라는 인터페이스를 package ch08.sec08; public class SmartTelevision impl.. 2022. 10. 7. [에러 해결] java.lang.StringIndexOutOfBoundsException: 에러 해결 -CodeRecorder java.lang.StringIndexOutOfBoundsException 라는 에러가 발생했다 . 보통 추출하는 String 의 문자열이 길거나 짧을 때 나오는 에러이다 자바 코드는 ! 받아온 QCONTENT 내용을 substring로 잘라서 추출해서 ... 붙이는 코드인데 QCONTENT 칼럼안에 마지막 10번째 QCONTENT 칼럼에 문자열 길이가 3이라서 생긴 문제이다 ! 그래서 이렇게 자바코드를 수정해서 길이를 맞춰서 추출할것이고 앞으로 입력받을때 최소값을 주어서 글자수가 너무 적게 안들어오도록 막아둘것으로 해결했다 ! 2022. 10. 6. [Java] 인터페이스(Interface) 상수 필드 와 추상 메소드 정리 및 예제코드 - CodeRecorder 상수필드 ! 는 ? public static final 특성을 가진다 ! // 생략해도 컴파일시 붙어버림~~ package ch08.sec03; public interface RemoCon { public static final int MAX_VOLUME=10;//상수 int MIN_VOLUME=0;//상수 } package ch08.sec03; public class MainExample { public static void main(String[] args) { //인터페이스명.상수 System.out.println(RemoCon.MAX_VOLUME); System.out.println(RemoCon.MIN_VOLUME); } } 결과 추상메소드 ! package ch08.sec04; public i.. 2022. 10. 5. 이전 1 ··· 11 12 13 14 15 16 17 ··· 22 다음