Language/Java

인터페이스 타입의 입력 매개변수로 익명 이너 클래스를 이용해 생성한 객체를 전달하는 방법을 알아볼 것이다. 인터페이스 A에는 추상메서드 abc(), 클래스 C에는 인터페이스 A 타입의 객체를 입력매개변수로 포함하고 있는 메서드 cde(A a)가 있다. interface A { public abstract void abc(); } class C { void cde(A a) { a.abc(); } } 클래스 C의 객체를 생성한 후 cde(A a)메서드를 호출하기 위해서는 입력 매개변수로 사용될 인터페이스 A타입의 객체를 생성해야한다. 그런데 A는 인터페이스 이므로 객체를 직접 생성할 수 없어 인터페이스 A를 구현(implements)한 자식 클래스의 객체가 전달되어야 한다. 인터페이스 A의 객체를 생성하고,..
익명클래스 익명 클래스란 이름이 없는 클래스 이다. 익명 클래스를 사용하는 이유는 일시적으로 한번만 쓰고 버려지는 객체에 사용되며 물론 재사용 되지 않는다. 확장성을 고려하여 익명클래스를 쓰지 않는 경우가 있지만 확장성 있는 클래스를 사용하는 것 보다 익명클래스를 사용하여 추후에 유지보수시 이점이 있을 때 사용한다. 오로지 단 하나의 클래스를 상속받거나 단 한의 인터페이스만을 구현할 수 있다. 익명클래스를 사용하지 않은 예제 interface Age { int age = 29; void getAge(); } class MyClass implements Age { @Override public void getAge() { System.out.print(age); } } class AnonymousTest ..
Interface (인터페이스) 인터페이스는 내부의 모든 필드가 public static final 로 정의됨 인터페이스의 static, default메서드를 제외한 모든 메서드는 public abstract 로 정의됨 인터페이스는 다중상속을 지원한다. 인터페이스는 동일한 목적하에 동일한 기능을 수행하게끔 강제하는것이 역할이자 개념 인터페이스는 "Inteface" 키워드를 통해 선언할 수 있으며, "implements" 키워드를 통해 일반 클래스에서 인터페이스를 구현할 수 있다. public interface Drawable{ void draw(); } Abstatct Class (추상 클래스) 구제적이지 않은 클래스이다. (메서드의 본체가 완성되지 않은 미완성 메서드) 클래스들의 공통되는 메소드를 정의..
자바에서 캐스팅(형변환)은 타입을 변환하는 것을 뜻한다. 기본 자료형에서도 등호를 중심으로 항상 왼쪽과 오른쪽 자료형이 일치해야 하는데 만일 자료형이 다를 경우에 컴파일러가 자동으로 타입을 변환해주던가 사용자가 직접 변환해줘야 한다. 이 포스트에서는 상속 관계에 있는 부모, 자식 클래스간에 형변환인 업캐스팅, 다운캐스팅에 대한 내용과 왜 사용하는지 작성하였다. 업 캐스팅 자식 클래스가 부모 클래스 타입으로 형변환 되는 것 Java에서 자식 클래스는 부모 클래스의 모든 특성을 상속받는다. class Person{ String name; public Person(String name) { this.name = name; } } class Student extends Person{ String age; pub..
메소드 오버라이딩 부모클래스와 자식클래스가 상속관계일 때 자식클래스가 부모클래스에서 선언된 형태로 메소드명으로 구현하는 것이다. Parents.java package overriding; public class ParentClass { public ParentClass(){ System.out.println("ParentClass Constructor"); } public void printName(){ System.out.println("ParentClass Name"); } } ChildClass.java package overriding; public class ChildClass extends ParentClass{ public ChildClass(){ System.out.println("Chil..
서론 C로 언어를 입문하고 나서 자바를 배울 때 객체, 인스턴스, 메소드 용어가 나오면서 혼동 되었다. 나중에 혼동되어도 개념을 빨리 잡기 위해 글을 정리하려고 한다. 짧은 글이지만 잘못된 글이 있으면 알려주시기 바랍니다. (어쩌피 볼사람도 없겠지만) 클래스 "객체를 만들기 위한 설계도 또는 틀" 이라고 생각하면 되겠다. 예를들어 겨울철에 팥, 바닐라, 초코 붕어빵을 만든다고 하자. 밀가루와 팥 또는 바닐라, 초코 등 재료가 각기 다른 것으로 만들겠지만 붕어빵이라는 객체를 만들기 위해서 붕어빵 틀이 있어야 하고 붕어빵 틀은 클래스라 할 수 있다. 클래스는 객체를 생성하는데 사용된다. 클래스는 메소드(함수) 와 변수 가 포함되어 있다. 객체 클래스로 선언된 변수, 실세계에 존재하는 것 으로 정의할 수 있다..
상속 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 이다. 즉, 부모 클래스의 멤버(변수,메서드)를 자식 클래스에게 이관하는 것 이다. 그러면 "상속" 을 왜 사용하는가? 1. 개발이 잘된 클래스를 재사용하여 재사용성이 높아진다. 2. 코드의 중복이 줄어들며 개발 기간이 단축된다. 3. 코드를 공통적으로 작성하여 유지보수가 용이하다. 즉, 생산성과 유지보수에 좋기에 사용한다. 상속을 선언하기 위해서는 다음과 같이 클래스를 작성하면 된다. class 자식클래스 extends 부모클래스 { ... } 예제를 살펴보자 Parents.java public class Parents { String name; public void setName(String name){ this.name = name; } ..
White Asher
'Language/Java' 카테고리의 글 목록 (2 Page)