이클립스 70

☆☆☆ 다형성 (polymorphism)

▶ 다형성 (polymorphism) - 여러가지 형태를 가질 수 있는 능력 - 조상 타입 참조 변수로 자손 타입 객체를 다루는 것 - 객체와 참조변수의 타입이 일치할 때와 일치하지 않을 때의 차이? SmartTV s = new SmartTv(); // 참조 변수와 인스턴스의 타입이 일치 TV t = new SmartTv(); // 조상 타입 참조변수로 자손 타입 인스턴스 참조 ; 불일치도 OK ex) 스마트 티비를 스마트티비 리모컨( 기능 7개 )으로 사용한다면 모든 기능( 기능 7개 )을 사용할 수 있음 티비 리모컨( 기능 5개 )으로 사용한다면 일부 기능만 사용 가능함 (리모컨에 있는 기능까지만 가능) - 자손 타입의 참조변수로 조상 타입의 객체를 가리킬 수 없다. TV t = new SmartTv..

22.09.07_사전 수업_1_변수,상수

▶ 변수 - 값을 저장할 수 있는 메모리 공간 클래스 생성시에는 클래스 이름과 파일 이름이 동일해야한다. 정수형 변수 public class Java_ex_1_1 { public static void main(String[] args) { System.out.println("Start JAVA"); int num = 10;// 정수값만 저장할 수 있는 변수 System.out.println(num); } } 데이터를 주고 받는 기본 단위 : 8bit = 1byte 2*8 만큼 데이터 표현 가능 (0~255; 256개) ▶ 각 자료형마다 크기가 정해져있음 - 정수 : int (4byte) - 실수 : 부동소수점 방식 float(4byte), double(8byte) (소수점 오차가 있어 크기가 작은 실수 ..

캡슐화

▶캡슐화와 접근 제어자 접근 제어자를 사용하는 이유 - 외부로부터 데이터를 보호하기 위해서 - 외부에는 불필요한, 내부적으로만 사용되는, 부분을 감추기 위해서 public class Time { public int hour; // iv (접근제한 X) , 접근 가능한 범위 : 0~23 public int minute; // iv (접근제한 X) , 접근 가능한 범위 : 0~59 public int second; // iv (접근제한 X) , 접근 가능한 범위 : 0~59 } => Time t = new Time();. t.hour = 25; // 멤버변수에 직접 접근이 가능함 iv를 보호하기 위해서 코드 변경! (접근 제어자를 이용한 캡슐화) iv를 private 으로 해서 외부 접근을 막는다. 메서드는..

접근 제어자

▶ 접근 제어자 (access modifier) private 같은 클래스 내에서만 접근이 가능하다. (defautl) 같은 패키지 내에서만 접근이 가능하다. protected 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능하다. public 접근 제한이 전혀 없다. 예제) private는 같은 클래스 내에서만 접근이 가능!! package pkg1; class Myparent { privateint prv;// 같은 클래스 내에서 사용 가능 public void printMembers() { System.out.println(prv);// OK } } public class MyParentTest { public static void main(String[] args) { Mypa..

제어자, static, final, abstract

▶ 제어자 (modifier) - 클래스와 클래스의 멤버 (멤버 변수, 메서드)에 부가적인 의미 부여 제어자 종류 접근 제어자 public, protected, (default), private 그 외 static, final, abstract, native, transient, synchronized, volatile, strctfp - 하나의 대상에 여러 제어자를 같이 사용가능 (접근 제어자는 하나만) public class ModifierTest { public static final int WIDTH = 200; public static void main(String[] args){ System.out.println("Width =" + WIDTH); } } ▶ static - 클래스의, 공통적인..

import문 /static import문

▶ import문 - 클래스를 사용할 때 패키지 이름을 생략할 수 있다. - 컴파일러에게 클래스가 속한 패키지를 알려준다. class ImportTest { java.util.Date today = new java.util.Date(); } => import를 이용해서 패키지 이름 생략하기 import java.util.Date; // 이클립스 단축기 : ctrl+shit+o 사용 시 자동으로 만들어짐 class ImportTest { (java.util 생략) Date today = new (java.util 생략) Date(); } - java.lang 패키지 (=기본 패키지)의 클래스는 import하지 않고도 사용할 수 있다. (string, Object, System, Tread ... ) imp..

패키지, 클래스 패스

▶ 패키지 (package) - 서로 관련된 클래스의 묶음 - 클래스는 클래스 파일 (*.class) 패키지는 폴더. 하위 패키지는 하위 폴더 - 클래스의 실제 이름(full name)은 패키지를 포함. (java.lang.String) rt.jar는 클래스들을 압축한 파일 (JDk 설치경로 \jre\ilb에 위치) ▶ 패키지의 선언 - 패키지는 소스파일의 첫 번째 문장으로 단 한번 선언 - 같은 소스 파일의 클래스들은 모두 같은 패키지에 속하게 된다. - 패키지 선언이 없으면 이름없는 (unnamed) 패키지에 속하게 된다. package com.codechobo.book; // 패키지 선언 public class PackgeTest { // 클래스 1 ( com.codechobo.book; 패키지에 ..

참조변수 super, 생성자 super()

▶참조변수 super ( ≒ this. lv와 iv구별에 사용) - 객체 자신을 가리키는 참조변수. 인스턴스 메서드(생성자)내에만 존재 (= static 메서드내에 사용불가) - 조상의 멤버를 자신의 멤버와 구별할 때 사용 class Ex7_2 { puvlic static void main (String args[]) { Chihld c= new Child(); c.method(); } } class Parent (int x = 10; /* super.x */ } class Child extends Parent { int x = 20; // this.x void method() { System.out.println("x =" + x); System.out.println("this.x =" + this.x..

오버라이딩

▶(메서드) 오버라이딩 (overriding) - 상속받은 조상의 메서드를 자신에 맞게 변경하는 것 class Point { // 2차원 좌표 int x; // 위치 int y; string getlocation() { return "x:" + x + ", y :" + y; // 점의 위치값을 문자열로 만들어서 반환하는 getlocation 메서드 } } class Point3D extends Point { // 3차원 좌표상의 한 점 int z; string getlocation() { // 오버라이딩 return "x:" + x + ", y :" + y + ", z :" + z; // 선언문변경 불가, 내용(구현부.{})만 변경 가능 } } ▶오버라이딩의 조건 1. 선언부가 조상 클래스의 메서드와 일..

단일상속, Object클래스

▶ 상속 (Single Inheritance) - Java 는 단일 상속만을 허용한다. (C++은 다중상속 허용) class TVDVD extends TV DVD { // 에러. 조상은 하나만 허용된다. // .... } - 비중이 높은 클래스 하나만 상속관계로, 나머지는 포함관계로 한다. ▶ Object 클래스 - 모든 클래스의 조상 - 부모가 없는 클래스는 자동적으로 Object 클래스를 상속받게 된다. - 모든 클래스는 Object 클래스에 정의된 11개의 메서드를 상속받는다. toString(), equals(Object obj), hashCode()...