JAVA14 JAVA | instanceof연산자, 매개변수 다형성, 객체 배열로 다루기 5.3 instanceof연산자 -참조변수의 형변환 가능여부 확인에 사용함. 가능하면 true반환 (조상자손) -형변환 전에 반드시 instanceof로 확인해야 함 (조상과 자기자신에 대해 참을 반환함) void doWork(Car c){ if (c instanceof FireEngine) { //형변환 가능한지 확인 FireEngine fe = (FireEngine)c; //형변환 fe.water(); ... //형변환 하는 이유는 인스턴스의 원래 기능을 모두 사용하기 위해서임 //Car타입의 리모컨인 c로는 water()를 호출할 수 없으니까 //리모컨을 FireEngine타입으로 바꿔서 water()호출함 class Ex17 { public static void main(String[] args).. 2022. 2. 3. JAVA | 다형성, 참조변수의 형변환 5.다형성 polymorphism 5.1 다형성이란 -여러가지 형태를 가질 수 있는 능력 -조상 타입 참조변수로 자손 타입 객체를 다루는 것 (조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하는 것) class Tv{ boolean power; int channel; void power() { power= !power; } void channelUp() { ++channel; } void channelDown() { --channel; } } class CaptionTv extends Tv{ String text; void caption() {/*생략*/ } } 인스턴스 타입과 참조변수 타입이 일치하는것이 보통이지만 서로 상속관계에 있을 경우 조상 클래스 타입의 참조변수로 자손 클.. 2022. 1. 28. JAVA | 오버라이딩, package, import, 제어자 2. 오버라이딩 2.1 오버라이딩이란? overide->덮어쓰다 상속받은 조상의 메서드를 자신에 맞게 내용을 변경하는 것 상속받은 메서드를 그대로 사용하기도 하지만, 자손 클래스 자신에 맞게 변경해야 할때 조상의 메서드를 오버라이딩함 + 재정의라는 의미 부모가 가지고있는 메서드를 그대로 가져와서 body만 바뀌는 경우 method의 (method시그니처) name, return type, argument list가 같아야한다. public String getDetails() { //method시그니처 return super.getDetails() + "\ndepartment:" + department; //method 바디 } class Point { int x; int y; String getLocat.. 2022. 1. 26. JAVA | 상속, 포함관계 Ch7. 객체지향 프로그래밍2 1.상속(inheritance) 1.1상속의 정의와 장점 상속은 기존의 클래스를 재사용하여 새로운 클래스를 작성하는것 두 클래스를 부모-자식으로 관계를 맺어주는 것 class child extends Parent { //... } //extend확장 -자손은 조상의 모든 멤버를 상속받는다(생성자, 초기화블록 제외) -자손의 멤버 개수는 조상보다 적을 수 없다(같거나 많다) -자손의 변경은 조상에 영향을 미치지 않는다. -자손클래스는 조상의 멤버를 모두 상속받기 때문에 조상클래스에 멤버변수 추가하면 자손에 자동추가되는 효과 얻음 -생성자와 초기화 블럭은 상속되지 않고 멤버만 상속된다. 조상클래스 - 부모클래스parent, 상위클래스super, 기반클래스base 자손클래스 - .. 2022. 1. 24. JAVA | 변수와 메서드, 오버로딩, 생성자 3. 변수와 메서드 3.11 클래스 메서드(static메서드)와 인스턴스 메서드 인스턴스 메서드 -인스턴스 생성 후, '참조변수.메서드이름()'으로 호출 -인스턴스 멤버(iv, im)와 관련된 작업을 하는 메서드 -메서드 내에서 인스턴스 변수(iv) 사용가능 static 메서드(클래스 메서드) -객체생성없이 '클래스이름.메서드이름()'으로 호출 -인스턴스 멤버(iv, im)와 관련없는 작업을 하는 메서드 -메서드 내에서 인스턴스 변수(iv) 사용불가 class MyMath2 { long a, b; long add() { //인스턴스 메서드 return a + b; } static long add(long a, long b) { //클래스 메서드(static) return a + b; } } iv의 사용여.. 2022. 1. 23. JAVA | 객체지향, 인스턴스, 변수와 메서드 객체지향언어 = 프로그래밍 언어 + 객체지향 개념 opp 1. 캡슐화 / 2. 상속 / 3.추상화 / 4.다형성 객체지향언어의 특징 1.코드의 재사용성이 높음 2.코드의 관리 용이 3.신뢰성이 높은 프로그래밍 가능하게 됨 클래스 : 객체를 정의해놓은 것. 즉 객체의 설계도 객체 : 실제로 존해하는 것. 즉 제품. 클래스(설계도)가 필요한 이유는? 객체(제품)을 생성하기 위해 객체(제품)이 필요한 이유는? 객체를 사용하기 위해 객체를 사용한다는 것은? 객체가 가진 속성(변수)와 기능(메서드)를 사용하기 위해 객체 : 모든 인스턴스를 대표하는 일반적 용어 인스턴스 : 특정 클래스로부터 생성된 객체 클래스(설계도) ---인스턴스화--> 인스턴스(객체) 객체의 구성요소 - 속성과 기능 속성(property) -.. 2022. 1. 22. 이전 1 2 3 다음