본문 바로가기

자바

(33)
17. 다중 구현 java는 다중 상속이 불가하다. 대신 인터페이스를 이용하여 다중구현이 가능하다. 다중 구현이란 여러가지 인터페이스를 하나의 클래스가 받아 java는 여러 interface를 통해 여러 가지 타입으로 객체를 선언할 수 있다. 이것은 자바의 대표적인 특징인 다형성을 나타낸다. package com.Make_car; public interface Move { //모든 인터페이스 상속받는 인터페이스 public void speed(); } package com.Make_car; public interface Airconditional extends Move { //Move를 상속받는 인터페이스 public void canAircon(); } package com.Make_car; public interface..
16. 핸드폰 예제로 알아보는 인터페이스 블스님의 강의를 참고하여 인터페이스를 구현하였다. 핸드폰의 기능을 인터페이스의 선언만하고 각각의 A, B, C 핸드폰에 따라 객체를 나누어 구현하였다. package CellPhone; public interface IRealPhone { //인터페이스, 추상메소드만 가지고 있다. public void calling(); public void internet(); public void core(); } package CellPhone; public class APhone implements IRealPhone { public void calling() { System.out.println("통화 음질 최상"); } public void internet() { System.out.println("속도는 5..
15. 인터페이스 인터페이스란 객체와 객체의 소통 수단이다. 자바에서 다형성을 대표하는 기능 중 하나이다. 인터페이스를 이용하여 다양한 객체를 부속품처럼 사용할 수 있다. 인터페이스의 문법적 특징은 다음과 같다. 1. 실제 기능이 없다. 즉 구현된 기능이 없고 추상메소드와 상속만이 존재한다. 2. 상수를 만들 때 private은 선언해서 안된다. 3. 인터페이스는 객체는 아니지만 객체 타입으로 사용된다. 4. 구현은 실행되는 객체의 메소드에서 실현한다. package com.Interface; public interface Interfaces1 { //인터페이스는 추상 메소드와 변수만이 존재, 상속이 존재할 수 있다. public static String Const_str = "abc"; //상수는 public 취급 pu..
14. 추상 클래스 추상 클래스는 추상적으로 정의한 클래스이다. 객체를 만들지 못한다. 추상 클래스를 이용하여 사용자가 재정의를 통해 상황에 맞게 메소드를 이용할 수 있다. package com.AbstractPackage; abstract public class Abstract { public int num = 1; public void show() { System.out.println("Abstract의 함수"); } abstract void plus(); //가상함수 } package com.AbstractPackage; public class Normal1 extends Abstract { //함수 오버라이딩 public void show() { System.out.println("Normal1의 함수"); } //..
13. 상속2 오버라이드란 부모 클래스의 메소드를 자식 클래스에서 동일한 이름으로 다시 재정의하여 부모 클래스의 메소드를 호출하지 않고 자식 클래스의 메소드를 사용하는 방법이다. package Overide; public class Super { public Super() {} public void method1() { System.out.println("Super의 method1"); } } package Overide; public class Derived extends Super { public Derived() {} public void method1() { System.out.println("Derived의 method1"); //부모의 함수를 오버라이드 } } package Overide; public cl..
12. 상속1 상속이란 임의의 클래스에서 다른 객체로 자신의 정보를 넘겨주는 것을 의미한다. 상속의 장점은 코드의 재사용성을 높여 중복을 줄이고 이에 따른 유지, 보수가 용이해진다는 점이다. 상속을 사용하는 이유는 크게 두가지가 있다. 첫째는 이미 누군가가 완벽히 개발 해놓은 프로그램이 있다면 상속을 하여 빠른 시간내에 프로그램을 만든다는 것이다. 둘째는 다양한 객체타입을 상속을 통해서 하나의 객체타입으로 묶을 수 있다는 것이다. 상속을 할 때는 자식 클래스에서 생성자를 호출하면 항상 부모 클래스에 생성자부터 호출한다. 그 후 자식 클래스에 생성자를 호출한다. 참고로 모든 클래스는 자바클래스에서 제공하는 Object클래스를 상속받는다. package com.inheritance1; public class Parent ..
11. static static은 같은 클래스에서 나온 객체가 static이 붙은 키워드를 공유하는 문법이다. static 키워드를 붙은 요소는 객체마다 따로따로 생기지 않는다. static이 선언되지 않은 외부에서 static 키워드가 붙은 요소를 접근 시 객체를 생성하지 않고 클래스명을 이용하여 접근한다. staic의 장점은 객체생성과 상관없이 클래스에 존재하기 때문에 힙 영역에 메모리를 사용하지 않아서 메모리 효율성이 좋다는 것이다. static의 단점은 가비지 콜렉터로 삭제되지 않기 때문에 프로그램이 오랜시간 지속되면 메모리 관리가 되지 않는다는 점이다. static이 사용되는 대표적인 예는 상수를 지정할 때 사용하거나 프로젝트에서 팀원끼리 약속에 의해 정해진 변수 지정시에 사용한다.. (ex. 3.141592.....
10. 패키지에 대한 이해 패키지란 자바에서 많은 파일을 효율적으로 관리하기 위해 등장한 구조이다. 클래스는 패키지로 관리한다. 우리는 여태까지 우리의 손으로 패키지를 만들어 패키지 안에 클래스를 넣었다. 패키지의 이름은 유일한 이름일수록 좋다. 큰 프로젝트를 할 때 패키지의 이름이 충돌이 나면 오류가 발생하기 때문이다. 보통 패키지의 이름은 도메인 주소를 역방향으로 마든다. 패키지명은 수정이 가능하다. 서로 다른 패키지에 내용을 불러올 때 반드시 import키워드를 이용하여 해당 패키지를 불러와야 한다. 다음은 패키지를 여러개 짜놓은 간단한 자바 프로그램 화면이다. package Package1; public class MyClass1 { public MyClass1() { System.out.println("MyClass1의 ..