분류 전체보기
Java 기초 내부클래스(1)
Java 기초 내부클래스(1)
2020.12.17기본 환경 JDK : 1.8.0_261 버전 JRE : 1.8.0_261 버전 JAVA VERSION : 8 업데이트 261 Eclipse IDE VERSION : 2020-06버전 목표 자바에서 제공하는 내부클래스를 이해한다. 코드 package ex14innerclass; /* 내부 정적 클래스 : 클래스 안에 정의하는 클래스로 static을 붙여준다. - 이와 같이 내부클래스를 static으로 선어하면 Nested 클래스라고 한다. - 정적 멤버변수 & 멤버메소드를 가질 수 있다. - 외부 클래스의 인스턴스형 멤버는 사용할 수 없다. - 외부 클래스명$내부클래스명.class 파일이 생성된다. ※원래 class 앞에는 static을 붙일수 없으나 내부 클래스에서는 허용된다. */ class Outer..
Java 기초 상속 - 연습문제(2)
Java 기초 상속 - 연습문제(2)
2020.12.14기본 환경 JDK : 1.8.0_261 버전 JRE : 1.8.0_261 버전 JAVA VERSION : 8 업데이트 261 Eclipse IDE VERSION : 2020-06버전 시나리오 친구정보를 기록할 MyFriendInfo클래스를 상세정보를 기록할 MyFriendDetailInfo클래스에 상속하고 이름 나이는 MyFriendInfo클래스에 주소와 번호는 MyFriendDetailInfo에 입력할 수 있도록 구성하시오 다음과 같은 결과가 나와야 합니다. 정답 package ex12inheritance; //친구의 정보를 저장할 기본클래스 class MyFriendInfo { private String name; int age; public MyFriendInfo(String name, int ag..
Java 기초 상속 - 연습문제(1)
Java 기초 상속 - 연습문제(1)
2020.12.14기본 환경 JDK : 1.8.0_261 버전 JRE : 1.8.0_261 버전 JAVA VERSION : 8 업데이트 261 Eclipse IDE VERSION : 2020-06버전 시나리오 Car클래스로 HybridCar 클래스를 상속해주고, HybirdCar클래스로 HybridWaterCar클래스를 상속해 주는 구조를 만드시오. (단, Car에는 gasoline변수를 생성자에서 초기화해주고 HybirdCar는 electric을 생성자에서 초기화해주고, HybridWaterCar클래스는 water변수를 생성자에 초기화 해주시오) 다음과 같은 결과가 나와야 합니다. 정답 package ex12inheritance; class Car { int gasoline; public Car(int gasoline)..
Java 기초 상속(8) - 다형성(이질화)
Java 기초 상속(8) - 다형성(이질화)
2020.11.30기본 환경 JDK : 1.8.0_261 버전 JRE : 1.8.0_261 버전 JAVA VERSION : 8 업데이트 261 Eclipse IDE VERSION : 2020-06버전 목표 상속의 다형성(이질화)를 이해한다. 코드 package ex12inheritance; /* 다형성(Polymorphism) : 같은 타입의 참조변수를 통해 다양한 객체를 이요할 수 있는 특성을 말한다. 단, 객체간에는 상속관계가 있어야 한다. -부모의 참조 변수로 자식 객체를 참조 1. 이경우 부모타입의 참조변수는 부모로부터 상속받은 맴버까지만 접근가능하다. 2. 자식에게 오버라이딩한 메소드가 우선 호출된다. 3. 자식에게 새롭게 정의한 멤버에는 접근할 수 없다. -같은 타입의 클래스로 객체를 참조 1. 객체 전체를 접..
Java 기초 상속(7) - 전화번호부
Java 기초 상속(7) - 전화번호부
2020.11.30기본 환경 JDK : 1.8.0_261 버전 JRE : 1.8.0_261 버전 JAVA VERSION : 8 업데이트 261 Eclipse IDE VERSION : 2020-06버전 목표 상속과 오버라이딩을 이용하여 효율적인 친구관리 프로그램을 만들어본다. 코드 package ex12inheritance; import java.util.Scanner; /* 친구를 표현한 최상위 클래스로 해당 프로그램에서는 Friend 클래스로 객체생성은 하지 않는다. 상속의 목적으로면 정의된 클래스이다. */ class Friend { // 멤버변수 String name; // 이름 String phone; // 번호 String addr; // 주소 // 생성자 public Friend(String name, Stri..
Java 기초 상속(6) - overriding
Java 기초 상속(6) - overriding
2020.11.26기본 환경 JDK : 1.8.0_261 버전 JRE : 1.8.0_261 버전 JAVA VERSION : 8 업데이트 261 Eclipse IDE VERSION : 2020-06버전 목표 자바의 상속관계에서 사용하는 overriding에 대해 이해한다. 자바의 상속관계에서 사용하는 이질화에 대해 이해한다. 코드 package ex12inheritance; /* 오버라이딩(overriding) : 클래스가 상속관계에 있을때 하위 클래스에서 상위 클래스의 맴버메소드와 완전히 동일한 모양으로 제정의하는 것을 말한다. 오버로딩(Overloading)과 다른 점은 매개변수의 갯수, 반환타입 등이 완전히 똑같은 형태로 정의한다는 것이다. 하위 클래스에서 오버라이딩한 메소드는 상위클래스이 메소드를 가리게 되므로 항상..
Java 기초 상속(5) - 경찰과 총의 소유관계
Java 기초 상속(5) - 경찰과 총의 소유관계
2020.11.24기본 환경 JDK : 1.8.0_261 버전 JRE : 1.8.0_261 버전 JAVA VERSION : 8 업데이트 261 Eclipse IDE VERSION : 2020-06버전 목표 경찰과 총의 관계를 이해하여 소유관계에 대해 이해한다. 이전 게시물과 비교하여 소유관계와 상속관계의 차이를 이해한다. 코드 package ex12inheritance; /* 구성관계로 표현하기에 적합한 Has-A관계 X has a Y => X과 Y를 소유(보유)하고 있다. - 경찰이 권총을 소유하고 있다. - 경찰이 수갑을 소유하고 있다. Has-A와 같이 소유의 관계를 상속으로 표현하면 클래스 간의 강한 연결고리가 형성되어 권총이 없는 경찰을 표현하기가 힘들어진다. 따라서 이 경우에는 구성관계로 표현하는 것이 적합한다..
Java 기초 상속(4) - 컴퓨터 상속 구조
Java 기초 상속(4) - 컴퓨터 상속 구조
2020.11.24기본 환경 JDK : 1.8.0_261 버전 JRE : 1.8.0_261 버전 JAVA VERSION : 8 업데이트 261 Eclipse IDE VERSION : 2020-06버전 목표 컴퓨터와, 노트북, 테블릿피시로 상속으로 표현해보고 상속관계를 이해한다. 다음 게시물을 통해 상속과 소유 관계의 차이를 이해한다. 코드 package ex12inheritance; /* Is-A 관계 : X Is a Y => X는 Y의 일종이다로 표현가능 -노트북은 컴퓨터의 일종이다. -휴대폰은 전화기의 일종이다. 이와 같이 Is-A관계가 성립하는 객체를 상속으로 표현하기에 적합한다. */ /* 컴퓨터를 표현 : 기본적인 검퓨팅 환경을 제공하여 입력된 내용을 계산한다. */ class Computer{ String ow..
Java 기초 상속(3) - static
Java 기초 상속(3) - static
2020.11.20기본 환경 JDK : 1.8.0_261 버전 JRE : 1.8.0_261 버전 JAVA VERSION : 8 업데이트 261 Eclipse IDE VERSION : 2020-06버전 목표 상속받았을 때 static을 사용하는 법을 이해한다. 코드 package ex12inheritance; /* static(정적) 타입의 맴버도 상속이 되고 , 하위 클래스에서 접근할때는 맴버변수의 이름만으로 접근이 가능하다. 단, 클래스 외부에서 접근할 경우 객체생성 없이 클래스명을 통해서도 접근이 가능하다. 즉 static이 가진 기본적인 규칙을 그대로 따른다. */ class Adder { public static int val = 0; /* static으로 선언되 맴버변수는 실제로는 외부(메소드 영역)에 생성되어 ..
Java 기초 상속(2) - 접근제어
Java 기초 상속(2) - 접근제어
2020.11.18기본 환경 JDK : 1.8.0_261 버전 JRE : 1.8.0_261 버전 JAVA VERSION : 8 업데이트 261 Eclipse IDE VERSION : 2020-06버전 목표 접근제어을 상속에서 어떻게 사용하는지 이해한다. 코드 package ex12inheritance; class Account{ /* 맴버변수가 상관관계에 있다 하더라고 private으로 선언되면 클래스 내부에서만 접근이 가능하다. 즉 상속받은 하위클래스에서는 직접 접근이 불간능하다. */ private int money; public Account(int init) { money = init; } /* 입금처리 : protected로 선언되었으므로 상속관계에서 접근 가능 */ protected void depositMon..
Java 기초 상속(1) - 기본개념
Java 기초 상속(1) - 기본개념
2020.11.18기본 환경 JDK : 1.8.0_261 버전 JRE : 1.8.0_261 버전 JAVA VERSION : 8 업데이트 261 Eclipse IDE VERSION : 2020-06버전 목표 자바의 상속에 대해 이해한다. 코드 package ex12inheritance; /* 상속(Inheritance) : 기존에 저의된 클래스에 메소드와 변수를 추가하여 새로운 클래스를 정의하는 것을 말한다. 부모클래스를 자식 클래스가 상속할 떄는 extends 키워드를 사용한다. */ //부모클래스(상위, 기본, super) : 사람의 일반적인 형태를 추상화함 class Man{ private String name; public Man() { System.out.println("Man클래스 디폴트 생성자 호출됨"); } ..
Java 기초 static(3) - 싱글톤 디자인 패턴
Java 기초 static(3) - 싱글톤 디자인 패턴
2020.11.17기본 환경 JDK : 1.8.0_261 버전 JRE : 1.8.0_261 버전 JAVA VERSION : 8 업데이트 261 Eclipse IDE VERSION : 2020-06버전 목표 자바의 싱글톤 디자인 패턴에 대해 이해한다. 코드 package ex11static; /* 싱글톤 디자인 패턴 : 클래스를 설계하는 디자인 패턴의 하나로써 하나의 인스턴스 즉 하난의 메모리를 생성해 이를 공유해서 사용하고자 할 때 사용하는 패턴이다. 작성방법 1. 생성자의 접근지정자를 private으로 정의한다. 2. 외부 클래스에서 생성자를 접근할 수 없으므로 new를 통해 객체생성은 불가능 하다. 3. 클래스 내부에 정적메소드로 해당 클래스의 객체를 반환하도록 정의한다. (getInstanc()) 4. 위 방법을 통..