1) 특징 - 여러가지 형태를 가질 수 있는 능력 - 조상타입 참조변수로 자손타입 객체를 다루는 것 (반대로, 자손 참조변수로 조상 객체 가리킬 수 x) ex.예시 SmartTv s = new SmartTv(); //OK,참조변수와 인스턴스 타입 일치 Tv t = new SmartTv(); //OK,조상타입 참조변수로 자손타입 인스턴스 참조 SmartTv s = new Tv(); //에러! 2) 매개변수의 다형성 - 참조형 매개변수는 메서드 호출시, 자신과 같은 타입 or 자손타입의 인스턴스를 넘겨줄 수 있다. ex. 예시 package ch7; class Product { int price;//제품의 가격 int bonusPoint; //제품 구매시 제공하는 보너스점수 Product(int price)..

1) 특징 - 클래스와 클래스 멤버(멤버변수, 메서드)에 부가적인 의미부여 (형용사 역할) - 종류 접근제어자 : public, protected, (default-공백), private (이중 1개만 사용 가능) 그 외 : static, final, abstract... - 하나의 대상에 여러 제어자 같이 사용 가능(접근 제어자는 하나만) - 사용 순서는 상관 없음 (보통 접근제어자를 제일 왼쪽에 사용) ex. 예시 public class ModifierTest { public static final int WIDTH = 200;//접근제어자1 + 제어자2 public static void main(String90 args) { //접근제어자1 + 제어자1 System.out.println("WIDTH..

1) 특징 - import문을 사용해두면 이후 클래스를 사용할 때 패키지 이름을 생략 할 수 있다. - 컴파일러에게 클래스가 속한 패키지를 알려준다. - import문 단축키 : ctrl + shift + o ex.예시 - java.lang 패키지(기본 패키지)의 클래스(는 import하지 않고도 사용할 수 있다. (String, Object, System, Thread...) import java.lang.*; //*이란, 모든 클래스를 의미 class ImportTest2 { public static void main(String[] args) { System.out.println("Hello World!"); } } 위 java.lang import 문은 기본 패키지로서 항상생략 가능. 만약 위 i..

1) 특징 - 서로 관련된 클래스의 묶음 - 패키지는 폴더. 하위 패키지는 하위 폴더 (클래스는 클래스 파일(*.class)) - 클래스의 실제이름은 패키지를 포함 (java.lang.String) rt(runtime).jar는 클래스들을 압축한 파일(JDK설치경로₩jre₩lib에 위치) 2) 패키지의 선언 - 패키지는 소스파일의 처 번째 문장으로 단 한번 선언 - 같은 소스 파일의 클래스들은 모두 같은 패키지에 속한다. - 피키지 선언이 없으면 이름없는 패키지(default packeage)에 속하게 된다. 3) 클래스 패스(classpath) - 클래스 파일(*.class)의 위치를 알려주는 경로(path) - 환경변수 classpath로 관리하며, 경로간의 구분자는 ';'를 사용. classpath..

1) Super 특징 - 객체 자신을 가리키는 참조변수 - 인스턴스 메서드(생성자)내에만 존재 (static 메서드 내에서 사용불가) - 조상의 멤버를 자신의 멤버와 구별할 때 사용 (this는 lv와 iv구별에 사용) ex. Super 예시 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); System.out.println("super.x="+super.x); } } public class Ex7_2 { public static void main(St..
1)특징 - 상속받은 조상의 메서드를 자신에 맞게 변경하는 것 ex. 예시 package ch7; class Point { int x; int y; String getLocation() { return "x :" + x + ", y :"+ y; } } class Point3D extends Point { int z; String getLocation() { //오버라이딩 (String문장 추가하고 z내용 추가) return "x :" + x + ", y :"+ y + ", z:" + z; } } public class Overriding { public static void main(String[] args) { Point3D p = new Point3D(); p.x =3; p.y =5; p.z =7; ..
1) 특징 - 클래스의 멤버로 참조변수를 선언하는 것 class Circle { int x; //원점의 x좌표 int y; //원점의 y좌표 int r; //원점의 r좌표 } -> 위 예시를 포함으로 변환시 class Circle { Point c = new Point(); //원점 int r; //반지름 } class Point { int x; int y; } 2) 클래스 간의 관계 결정하기 - 상속관계 : ~은 ~이다. (class Circle extends Point{} ) - 포함관계 : ~은 ~을 가지고 있다. (Point c = new Point ();) ex. 원은 점을 가지고 있다(o) (포함관계) 원은 점이다(x) (상속관계) 3) 포함예시 package ch6; class MyPoint..
1) 특징 - 기존의 클래스로 새로운 클래스를 작성하는 것 (코드의 재사용) - 두 클래스를 부모와 자식으로 관계를 맺어주는 것. class Parent{} class Child extends Parent{ //.. } //Parent가 부모 클래스, Child가 자식 클래스. 이 두개는 상속 관계. - 자손은 조상(부모의 부모)의 모든 멤버를 상속받는다. (생성자, 초기화블럭 제외) - 자손의 멤버 개수는 조상보다 적을 수 없다 ( 같거나 많다.) - 자손의 변경은 조상에 영향을 미치지 않는다. (자식 클래스에 멤버가 추가되도 조상멤버 개수는 동일) package ch6; class Tvv { boolean power; //전원상태(on/off) int channel; //채널 void power(){..
- Total
- Today
- Yesterday