//public class 

public static void exe(Calculator cal){

//static으로 class method 생성해 각각의 instance가 method를 공유한다

//부모타입으로 매개변수를생성해 data를 가져온다

cal.setNum(100,200); 
cal.calResult(); 

//main
public static void main(String[] args) {
Calculator c1 = new Sum(); //부모type의 자식 instance를 생성
Calculator c2 = new Subtractor(); 

exe(c1); //sum 의 값을 출력한다
exe(c2); //subtractor의 값을 출력한다

//부모타입으로 매개변수를 받기때문에 각각의 인스턴스는 인자값을 받아온다

//이처럼 calculator 하나의 type 으로 기능이 다른동작을수행하는걸 다형성이라고한다 


Sum sum = new Sum();
sum.setNum(100,200);
sum.calResult();

Subtractor sub = new Subtractor();
sub.setNum(100,200);
sub.calResult();

 

//abstract class Calculator 

//abstract는 미완성클래스로 상속을 강요하는 class이다
int n1, n2;

public void setNum(int n1, int n2) {
this.n1 = n1;
this.n2 = n2;
}
public abstract void calResult(); 

//추상method는 overriding을 해줘야한다

//class Sum extends Calculator
public calResult(){ 
System.out.println(this.n1+this.n2);
//추상method를 overriding해준다

 

//class Subtractor extends Calculator
public void calResult() {
System.out.println(this.n1-this.n2;)
} //추상method를 overriding해준다
----------

Calculator c1 = new Sum(); 
Calculator c2 = new Subtractor();


Calculator ca[] = new Calculator[2]; 
ca[0] = new Sum(); 
ca[1] = new Subtractor(); 
//서로 다른 객체를 이용해서 method를 호출할수있지만

//부모가 같을경우 배열을 이용하여 두객체를 하나의 객체로 선언할수있다

-----------

static int i = 0; //carArray가 static이기때문에 변수도 static으로 바꿔준다
static Calculator calArray[] = new Calculator[3];

//static으로 배열을 생성했기때문에 객체를생성할필요가없다

//public class

public static void exe(Calculator cal){

//static으로 class method 생성해 각각의 instance가 method를 공유한다

//부모타입으로 매개변수를생성해 data를 가져온다

calArray[i++] = cal;

//carArray배열에 car객체를 입력한다

cal.setNum(100,200); 
cal.calResult(); 

} //class method

//main
Sum sum = new Sum();  
Subtractor sub = new Subtractor(); 

 

exe(sum); 
exe(sub); 
exe(sum); 
exeSequence(); 

//같은 class이므로 바로불러올수있다

 

//exeSequence
public static void exeSequence() {
for(int i=0;i<calArray.length;i++) {
String str = calArray[i].operand();

//carArray[i]에 operand method를 호출
System.outprintln(str);
} //연산의 순서를 나타내기위한 class method

//abstract class Calculator 

//abstract는 미완성클래스로 상속을 강요하는 class이다
int n1, n2;

public void setNum(int n1, int n2) { 
this.n1 = n1; 
this.n2 = n2; 
} 
public abstract void calResult(); 

//추상method는 overriding을 해줘야한다 

public abstract String operand();

//연산의 순서를 나타내기위해 추상method를 만든다


//class Sum extends Calculator
public calResult(){ 
System.out.println(this.n1+this.n2); 
//추상method를 overriding해준다

public String operand(){

return "plust";

//추상method를 overriding해준다

 

//class Subtractor extends Calculator
public void calResult() { 
System.out.println(this.n1-this.n2;) 
} //추상method를 overriding해준다

public String operand(){

return "minus";

//추상method를 overriding해준다

'java' 카테고리의 다른 글

Object class(toString(), Equals(), hashCode())  (0) 2019.08.03
예외처리(Exception)  (0) 2019.08.03
다형성(Polymorphism) -first  (0) 2019.08.03
인터페이스(interface)  (0) 2019.08.03
final class, final method  (0) 2019.08.02

int[] i; //배열 선언
i = new int[3];  //배열 생성
int[] i = new int[3];  //선언과 생성

i[0] =100; //index는 항상 0부터시작
i[1] =200; //초기화를 하지 않을시 0이란값이 출력된다
i[2] =300;

int [] i = {100,200,300,400}; //선언 생성 초기화를 동시에할수있다 
System.out.println(i.length); //배열의 길이 확인

int aa[] = new int[5];
aa[0] = 90;
aa[1] = 80;
aa[2] = 70;
aa[3] = 60;
aa[4] = 50;

int bb[];
bb = aa; //aa배열의 값이 bb배열에 입력된다

 

for(int i=0;i<aa.length;i++) {
System.out.println(aa[i]);
}
for(int i=0;i<bb.length;i++) {
System.out.println(bb[i]);
}

double []tt = new double[3];
tt[0] = 11.1;
tt[1] = 15.3;
tt[2] = 18.2;
double ttSum = 0;
for(int i=0;i<tt.length;i++) {
ttSum += tt[i];
//tt배열의 합을구한다
double ttAvg = ttSum/tt.length;

//tt배열의 평균을 구한다

다차원 배열 (2차원)
int a[][]; //선언
a = new int [2][3]; //2행 3열 배열 생성
a[0][0] = 11;
a[0][1] = 12;
a[0][2] = 13;
a[1][0] = 14;
a[1][1] = 15;
a[1][2] = 16; //초기화

for(int i=0;i<a.length;i++) {
for(int j=0;j<a[i].length;j++) {
System.out.print(a[i][j]+"");
} System.out.println();
} //배열내 모든값 출력

int b [][] = {{1,2,3},{4,5,6}}; //2행 3열의 배열을 만든다

char ch [][] = new char[3][]; //3행 배열 생성
//열을 할당하지 않을경우 가변적으로 할당할수있다
ch[0] = new char[3]; //3열 
ch[1] = new char[2]; //2열
ch[2] = new char[1]; //1열

ch[0][0] = 'A';
ch[0][1] = 'B';
ch[0][2] = 'C';
ch[1][0] = 'D';
ch[1][1] = 'E';
ch[2][0] = 'F';

for (int i=0;i<ch.length;i++) {
for( j=0;j<ch[i].length;j++) {
System.out.println(ch[i][j]);
//A B C D E F 가 출력된다
}

String str[][] = {{"hello"},{"Im jusung","^^"},{"thanks million","really","yes!"}};
for (int i=0;i<str.length;i++) {
for( j=0;j<str[i].length;j++) {
System.out.println(ch[i][j]);
//1행 1열, 2행 2열, 3행 3열의 배열이 생성된다
}

'java' 카테고리의 다른 글

class 객체 및 instance, 멤버요소들  (0) 2019.08.02
입출력(main method/System.in/Scanner)  (0) 2019.08.01
보조 제어문 break, continue  (0) 2019.08.01
반복문 for, while, do while. +(제어문자)  (0) 2019.08.01
조건문 if, switch  (0) 2019.08.01

+ Recent posts