IT 236

자바 상속, 메소드 오버라이딩, 메소드 오버라이딩 제약사항, 생성자

메소드 오버라이딩 제약사항- 슈퍼 클래스의 메소드와 동일한 원형으로 작성한다- 슈퍼 클래스 메소드의 접근 지정자보다 접근의 범위를 좁여 오버라이딩 할 수 없다. (public, protected, 디폴트, private) - static이나 private 또는 final로 선언된 메소드는 서브 클래스에서 오버라이딩 할 수 없다 파일명 : Test8.java package com.test; class Parent3 {// 기본생성자Parent3() /* extends Object */{super();System.out.println("부모생성자");} void parentPrn() {System.out.println("Parent3 parentPrn()");} } class Child3 extends Pa..

IT/Java 2018.07.17

자바 상속, 메소드 오버라이딩

메소드 오버라이딩: 상속관계에서 부모의 메소드 재정의 메소드 오버라이딩 규칙 - 메소드 이름, 매개변수 개수와 타입, 리턴형까지 모두 일치해야함! 메소드 오버라이딩 구현방식1) 완전한 재정의2) 부모 메소드 의존적으로 자식에서 코드 추가 파일명 : Test6.java package com.test; class Parent2 {void parentPrn() {System.out.println("부모클래스 parentPrn()");}}class Child2 extends Parent2 { // alt shift s@Override // annotation, 기능있음, 개발도구 도움 void parentPrn() {super.parentPrn(); // 부모의 메소드호출System.out.println("자식..

IT/Java 2018.07.17

자바 상속, super, 멤버변수 오버라이드(override)

파일명 : Test4.java package com.test; // 상속 : A는 B이다. 자식클래스는 부모클래스이다.// 관리자는 직원이다. // super. this. 객체의 접근가능영역 기준으로 사용// super. 부모멤버와 자식멤버 이름이 같을 경우 서로 구별을 위해 사용 class Employee {// 멤버변수 name salaryString name;int salary; // 기본생성자Employee() {} // name salary 받는 생성자Employee(String name, int salary) {this.name = name;this.salary = salary;}// 메소드 getEmployee() return name+", "+salaryString getEmployee()..

IT/Java 2018.07.17

자바 상속 두번째 예제

파일명 : Test2.java package com.test; // Point2D 클래스// 멤버변수 정수형 x y// 메소드 prn2D() 출력 "x, y"class Point2D { // 2차원 좌표int x, y;void prn2D() {System.out.println(x+", "+y);}} // Point3D 클래스// 멤버변수 정수형 z// 메소드 prn3D 출력 "x, y, z"class Point3D extends Point2D {int z;void prn3D() {System.out.println(x+", "+ y+", "+z);}} public class Test2 { public static void main(String[] args) {// Point3D 객체생성Point3D p =..

IT/Java 2018.07.17

자바 상속(Inheritance)

상속(Inheritance)A는 B이다(A is a B) 관계일 때 상속관계 가능.class A extents B {}사람(A)은 동물(B)이다.(O) 동물은 사람이다.(X) (역은 성립안됨)중학생은 학생이다.(O) 학생은 중학생이다.(X) 상속의 장점- 클래스의 간결화 : 멤버의 중복작성 불필요- 클래스 관리 용이 : 클래스들의 계층적 분류- 소프트웨어의 생산성 향상 : 클래스 재사용과 확장 용이 파일명 : Test1.java패키지 : com.test package com.test; // 포함(Include)// A는 B를 가진다(A has a B) 관계일 때는 포함관계 가능.class Car {int num;String color;Engine engine = new Engine();}class Eng..

IT/Java 2018.07.17

자바 패키지, 임포트(import)문, ArrayList

○ 자바 패키지같은 패키지 내에 존재하지 않는 클래스를 사용하기 위해서는 파일 상단에서 해당 클래스를 import 해줘야 한다 ○ 예제소스 파일명 : Test9.java package java0713; import java.util.ArrayList; import com.nomadof.PackTest; // PackTest 클래스는 com.nomadof 패키지내에 있으므로 import를 해줘야 사용가능하다 public class Test9 { public static void main(String[] args) { // 객체생성 ptPackTest pt = new PackTest(); // 상단에서 import했기때문에 사용 가능pt.show(); // 자바에서는 기본 임포트 패키지 java.lang//..

IT/Java 2018.07.16

자바 데이터은닉, 객체배열

○ 예제소스 파일명 : Test7.java package java0713; class Person {// 멤버변수 문자열 name 데이터은닉// 정수형 age 데이터은닉private String name;private int age; // 기본생성자public Person() {name = "아담";age = 1;} // getter & setterpublic String getName() {return name;} public void setName(String name) {this.name = name;} public int getAge() {return age;} public void setAge(int age) {this.age = age;}} public class Test7 { public s..

IT/Java 2018.07.16

자바 접근지정자 public, protected, 생략(package), private

○ 접근지정자public : 모두 접근 가능, 같은 프로젝트내에 있는 것에 접근 가능protected : 패키지 기준 포함 + 다른 패키지의 상속관계 서브클래스는 접근 가능. 생략(package) : 같은 패키지의 클래스에게만 공개. private : 같은 클래스 내에서만 접근가능. 외부에선 접근 불가능. ○ 예제소스 파일명 : Test6.java package java0713; class Point2D {private int x; // 데이터은닉 -> 캡슐화private int y; // 기본생성자public Point2D() {} // 전체공개 // x y 값을 받는 생성자public Point2D(int x, int y) {this.x = x;this.y = y;} // private로 데이터 은닉..

IT/Java 2018.07.16

자바 메소드 오버로딩, 가변인자, 정수형 합 리턴 함수 예제

○ 비정형인자, 가변인자파라미터를 1차원 배열객체로 전달받음가변인자는 무조건 제일 마지막 자리에 와야한다 ● 리턴형 함수명(자료형 변수명, 자료형...변수명) { } ○ 예제소스 파일명 : Test5.java package java0713; class MethodTest4 {// 메소드 add() 정수형값 2개 받아서 합을 리턴해줌int add(int a, int b) {return a+b;}// 메소드 add() 정수형값 3개 받아서 합을 리턴해줌int add(int a, int b, int c) {return a+b+c;}// 메소드 add() 정수형값 4개 받아서 합을 리턴해줌int add(int a, int b, int c, int d) {return a+b+c+d;} // 메소드 add() 정수..

IT/Java 2018.07.16

자바 메소드 오버로딩, 비정형인자, 가변인자 예제소스

○ 메소드 오버로딩 같은 클래스 내에서 메소드 이름을 동일하게 재정의 할 수 있는 것 ● 조건 매개변수 개수 다르게 매개변수 개수 같다면 자료형이 다르게 리턴형은 관계없음 ○ 비정형인자, 가변인자 파라미터를 1차원 배열객체로 전달받음 ● 리턴형 함수명(자료형...변수명) { } ○ 예제소스 파일명 : Test4.java package java0713; class MethodTest3 {// prn() 정수형 1개 받아서 출력void prn(int a) {System.out.println(a);} // prn() 정수형 2개 받아서 출력void prn(int a, int b) {System.out.println(a + "\t" + b);} // prn() 정수형3개 받아서 출력void prn(int a, ..

IT/Java 2018.07.16