오버로딩: 기존에 없는 새로운 메서드를 정의하는 것(new) 상속과 관련없음 오버라이딩: 상속받은 메서드의 내용을 변경하는 것(change,modify) class Parent2{ void parentMethod() {} } class Child2 extends Parent2{ void parent...
조상클래스인 Object클래스의 toString()을 오버라이딩해서 사용하는 예시 긴 5줄을 간단하게 2줄로 줄이는 과정 public class Oop24_overriding { public static void main(String[] args) { Point4 p = new Point4(1,2); ...
오버라이딩 상속받은 조상의 메서드를 자신에 맞게 변경하는 것 선언부 변경불가, 구현부(내용)만 변경하는 것 오버라이딩의 조건 1.선언부가 조상 클래스의 메서드와 일치해야한다. (반환타입,메서드이름,매개변수목록이 일치해야함) 2.접근제어자를 조상클래스의 메서드보다 좁은 범위로 변경할수 없다. 3.예외는 조상클래스의 메서드보다 많이 선언...
Object 클래스 모든 클래스의 최고 조상 부모가 없는 클래스는 자동적으로 Object 클래스를 상속받게 된다. 모든 클래스는 Object클래스에 정의된 11개의 메서드를 상속받는다 toString(),equals(),hashCode()... public class Oop22_objectClass { public sta...
단일 상속 자바는 단일상속만을 허용한다.(C++은 다중상속 허용) 비중이 높은 클래스 하나만 상속관계로 나머지는 포함관계로 한다 public class Oop21_singleInheritance { public static void main(String[] args) { TvDVD tt = new T...
포함(composite) 클래스의 멤버로 참조변수를 선언하는 것 작은 단위의 클래스를 만들고 이들을 조합해서 클래스를 만든다 클래스 간의 관계 결정하기 상속관계 ~은 ~이다(is-a) 포함관계 ~은 ~을 가지고 있다(has-a) 대부분 90%이상 포함관계로 만들면 된다 원(circle)은 점(point)이다 circle is...
public class Oop19_inheritance2 { public static void main(String[] args) { SmartTv stv = new SmartTv(); stv.channel = 10; //조상으로부터 상속받은 멤버 stv.channel...
상속(inheritance) 기존의 클래스로 새로운 클래스를 작성하는 것(코드의 재사용) 두 클래스를 부모와 자식으로 관계 맺어주는 것 자손은 조상의 모든 멤버를 상속 받는다.(생성자,초기화블럭 제외) (조상:부모, 부모의 부모..) 자손의 멤버 개수는 조상보다 적을 수 없다(같거나 많다.) 자식 클래스를 변경해도 부모(조상...
변수의 초기화 지역변수(lv)는 수동 초기화 해야함(사용전에 꼭 직접 초기화해줘야 한다.) 멤버변수(iv,cv)는 자동초기화 된다. 자동초기화시 기본값 boolean false char '\u0000' byte,short,int 0 long 0L float 0.0f double 0.0d 또는 0.0 참조형 null 멤버변...
this 객체(인스턴스) 자신을 가리키는 참조변수 this안에는 객체(인스턴스)의 주소가 담겨있다 인스턴스 메서드(생성자 포함)에서 사용가능 지역변수lv와 인스턴스변수iv 구별할때 사용 생략가능. 그러나 iv,lv이름 같아서 구별안가면 붙여야함 Car cc = new Car(); 이런식으로 cc처럼 선언 안해도 사용가능. static메서드 안에...
this() 생성자에서 다른 생성자 호출할때 사용 다른 생성자 호출시 생성자 메서드 내에서 첫 줄에서만 사용가능 class Car2{ String color; String gearType; int door; Car2(){ this("pink","auto",4);...
public class Oop14_parameterConstructor { public static void main(String[] args) { //매개변수가 있는 생성자 //1.지금까지는 객체생성하고 따로 iv 초기화 Car cc = new Car(); ...
생성자 인스턴스(객체)가 생성될때마다 호출되는 '인스턴스(iv) 초기화 메서드' Time t = new Time(); t.hour = 1; t.minute = 20; t.second = 33; Time t = new Time(1,20,33); 이렇게 간단하게 초기화! 생성자 메서드 작성법 이름이 클래스 이름과 같아야 한다 리턴값이 ...
오버로딩 한 클래스 안에 같은 이름의 메서드 여러개 정의하는 것 대표적인 예 println() println() println(int x) println(34); println(String x) println("hello"); println(boolean x) println(long x) 오버로딩 성립조건 1.메서드 이름이 같아야 ...
인스턴스 메서드(일반 메서드) 인스턴스 생성후, '참조변수이름.메서드이름()'으로 호출 인스턴스 멤버(im,iv)와 관련된 작업을 하는 메서드 메서드 내에서 인스턴스 변수(iv) 사용가능 static메서드(클래스 메서드) 객체생성없이 '클래스이름.메서드이름()'으로 호출 ex)Math.random() 같은 메서드는 클래스이름으로 호출한다...
매개변수가 참조형인 메서드에서(=매개변수가 객체인 메서드에서) 반환타입(리턴값)이 객체인 경우 리턴값은 객체(객체의주소)이다. public class Oop10_referParameterReturn { public static void main(String[] args) { Date3 d = new Date3(); d.x=10; Dat...
참조형 매개변수 객체를 매개변수로 받는 것을 참조형 매개변수라고 한다. 객체를 받는다는 것은 객체의 주소를 받는다는 것이다. public class Oop09_referenceTypeParameter { public static void main(String[] args) { Date2 d = new Date2(); d.x = 10; S...
기본형 매개변수 : 변수의 값을 읽기만 가능, 변경불가 참조형 매개변수 : 변수의 값을 읽고 변경할 수 있다. public class Oop08_basicParameter { public static void main(String[] args) { Date dd = new Date(); dd.x = 10; System.out....
메서드란? 1.문장들을 묶은 것 2.값을 받아서 처리하고,결과를 반환 반환타입 메서드이름(매개변수) { <= 선언부 메서드 호출시 수행될 문장들 <= 구현부 } 매개변수는 0~n개 가능 return값은 0~1개 int add(int x,int y) { int result = x+y; return result; } ...
public class Oop06_classInstance { public static void main(String[] args) { Card c = new Card(); c.kind = "Heart"; c.number = 7; //c.height 라고 써도 되지만 c...