package kkk;


public class InstanceOf {

public static void wrapBox(Box box) {


//box 가 GoldPaperBox로 형변환이 가능하다면 실행

if (box instanceof GoldPaperBox) {

((GoldPaperBox) box).godWrap();


//box 가 PaperBox로 형변환이 가능하다면 실행

} else if (box instanceof PaperBox) {

((PaperBox) box).PaperWrap();


//나머지

} else {

box.simpleWrap();

}

}

public static void main(String[] args) {

Box box1 = new Box();

PaperBox box2 = new PaperBox();

GoldPaperBox box3 = new GoldPaperBox();

wrapBox(box1);

wrapBox(box2);

wrapBox(box3);

}

}


class Box {

public void simpleWrap() {

System.out.println("simple wrap");

}


}


class PaperBox extends Box {

public void PaperWrap() {

System.out.println("paper wrap");

}


}


class GoldPaperBox extends PaperBox {

public void godWrap() {

System.out.println("gold wrap");

}

}


인스턴스의 자료형에 따라서 호출할 메소드를 다르게 할떄 
결과는 true 또는 false를 반환한다. 



'JAVA > 자바' 카테고리의 다른 글

자바 Swing 텍스트필드 포맷지정  (0) 2015.07.05
자바 Swing ComboBox 값변경 확인  (0) 2015.07.05
자바 Swing JList 스크롤  (0) 2015.07.03
자바 현재시간 출력  (0) 2015.07.01
자바 클래스 배열 생성  (0) 2015.06.30
블로그 이미지

왕왕왕왕

,

1. JScrollPane 을 먼저 생성함

JScrollPane total_List_Scroll = new JScrollPane();

total_List_Scroll.setBounds(12, 257, 771, 143);

stock_contentPane.add(total_List_Scroll);


2. JList 생성함

total_List = new JList();


3. 생성된 스크롤판에 setViewportView에 생성된 JList를 넣어줌

total_List_Scroll.setViewportView(total_List);




블로그 이미지

왕왕왕왕

,

public class Time {

public static void main(String[] args) {

Calendar calendar = Calendar.getInstance();

Date date = calendar.getTime();

System.out.println(date.toLocaleString());

// 2015. 7. 1 오후 9:24:08 실행결과 형식이 상관없으면 간단하게 이렇게 사용해도됨


Date date2 = new Date();

SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

System.out.println(simple.format(date2));

// 2015-07-01 21:38:15 실행결과 정해진 포맷이필요하다면 이런식으로

}

}

블로그 이미지

왕왕왕왕

,

package king;


public class test {


public static void main(String[] args) {

// TODO Auto-generated method stub


// object 클래스를 사이즈 3짜리 배열로 만듬

object[] o = new object[3];


//각각 객체 생성

for (int i = 0; i < 3; i++) {

o[i] = new object(i);

}


}


}


//main에서 생성된 3개 object클래스가 각각 setter와 getter를 개인적으로 쓸수잇다.


class object {

String n;


public object(int num) {

// TODO Auto-generated constructor stub

System.out.println(num);

}


public void setN(String n) {

this.n = n;

}


public String getN() {

return n;

}

}



'JAVA > 자바' 카테고리의 다른 글

자바 Swing JList 스크롤  (0) 2015.07.03
자바 현재시간 출력  (0) 2015.07.01
자바 OOP개념으로 작성한 Has-a 성적처리프로그램  (0) 2015.06.30
자바 상속 Has-a와 Is-a 관계  (0) 2015.06.30
자바 필드,오버라이딩  (0) 2015.06.29
블로그 이미지

왕왕왕왕

,
메인클래스 ScoreMng.java

package king;

import java.util.Scanner;

public class ScoreMng {
private StudentScore[] ss;

public ScoreMng(int num) {
// TODO Auto-generated constructor stub
ss = new StudentScore[num];
for (int i = 0; i < num; i++) {
ss[i] = new StudentScore();
}
}

public void input() {
Scanner sc = new Scanner(System.in);
String name;
int kor, eng, math;

for (int i = 0; i < ss.length; i++) {
System.out.println("이름입력");
name = sc.next();
ss[i].setName(name);
System.out.println("국어점수");
kor = sc.nextInt();
ss[i].setKor(kor);
System.out.println("영어점수");
eng = sc.nextInt();
ss[i].setEng(eng);
System.out.println("수학점수");
math = sc.nextInt();
ss[i].setMath(math);
}
}

public void operator() {
int sum = 0;
double avg;
for (int i = 0; i < ss.length; i++) {
sum += (ss[i].getKor() + ss[i].getMath() + ss[i].getEng());
ss[i].setSum(sum);
avg = sum / 3.f;
ss[i].setAvg(avg);
}
}

public void disp() {
for (int i = 0; i < ss.length; i++) {
System.out.println("\t" + (i + 1) + "번째 학생");
System.out.println("총점 " + ss[i].getSum() + " 평점 " + ss[i].getAvg());
}

}

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("학생수 입력");
int num = sc.nextInt();
ScoreMng sm = new ScoreMng(num);
sm.input();
sm.operator();
sm.disp();
}

}



서브클래스 총.평점계산 StudentScore.java 

package king;

import java.util.Scanner;

public class StudentScore {
private Name name;
private Subject kor;
private Subject eng;
private Subject math;
private int sum;
private double avg;

public StudentScore() {
name = new Name();
kor = new Subject();
eng = new Subject();
math = new Subject();
}

public void setSum(int sum) {
this.sum = sum;
}

public int getSum() {
return sum;
}

public void setAvg(double avg) {
this.avg = avg;
}

public double getAvg() {
return avg;
}

// 아래부터는 이름과 과목들
public void setName(String name) {
this.name.setName(name);
}

public String getName() {
return name.getName();
}

public void setKor(int score) {
kor.setScore(score);
}

public void setEng(int score) {
eng.setScore(score);
}

public void setMath(int score) {
math.setScore(score);
}

public int getKor() {
return kor.getScore();
}

public int getEng() {
return eng.getScore();
}

public int getMath() {
return math.getScore();
}

}

서브클래스 학생이름만 처리 Name.java

package king;

// 이름처리클래스
class Name {
private String name;

public void setName(String name) {
this.name = name;
}

public String getName() {
return name;
}
}

서브클래스 과목의 점수 처리  Subject.java


package king;

//과목처리클래스
class Subject {
private int score;

public void setScore(int score) {
this.score = score;
}

public int getScore() {
return score;
}
}


'JAVA > 자바' 카테고리의 다른 글

자바 현재시간 출력  (0) 2015.07.01
자바 클래스 배열 생성  (0) 2015.06.30
자바 상속 Has-a와 Is-a 관계  (0) 2015.06.30
자바 필드,오버라이딩  (0) 2015.06.29
자바 JFrame 화면중앙 실행하기  (0) 2015.06.28
블로그 이미지

왕왕왕왕

,

1. 클래스간의 관계 - 상속 관계(inheritance) , is a

~ 은(는) ~ 다.


예 학생은 사람이다(o)  사람은 학생이다(x)


- 코드를 공통적으로 관리하기 때문에 코드의 추가 및 변경이 매우 용이하다.    

- 조상클래스의 변경이 있으면 자손클래스는 영향을 주지만, 자손클래스가 변경되는 것은 조상클래스에 아무런 영향을 주지 않는다.

- 자손클래스의 인스턴스를 생성하면 조상클래스의 멤버와 자손 클래스의 멤버가 합쳐진 하나의 인스턴스로 생성된다.


2. 클래스간의 관계 - 포함 관계(composite) , has a

~ 은(는) ~ 을(를) 가지고 있다.


예 학생은 책을 가지고있다(o)  책은 학생을 가지고있다.(x)


- 한 클래스의 멤버변수로 다른 클래스를 선언하는 것

- 작은 단위의 클래스를 먼저 만들고, 이 들을 조합해서 하나의 커다란 클래스를 만든다.






블로그 이미지

왕왕왕왕

,

import org.omg.Messaging.SyncScopeHelper;


public class Main {

// field는 지속적으로 사용해야 될때 쓴다.

int money;


public static void main(String[] args) {

Main m1 = new Main();

Main m2 = new Main(1000);

Main m3 = new Main(2000, 'A');

Main m4 = new Main(3000, 2000);

Main m5 = new Main(4000, "king");


System.out.println(m2.money);

System.out.println(m3.money);

System.out.println(m4.money);

System.out.println(m5.money);


}


// Overroding 예제

// 같은 기능을 하는 것끼리 묶을때

Main() {

System.out.println("빈거");

}


Main(int a) {

money = a;

}


Main(int a, char b) {

money = a;

}


Main(int a, int b) {

money = a;

}


Main(int a, String b) {

money = a;

}


}



블로그 이미지

왕왕왕왕

,

// 프레임 객체 생성

JFrame jframe = new JFrame();

// 프레임 사이즈 width 200 height 200으로 정함 x,y는 입력하나 마나

jframe.setBounds(0, 0, 200, 200);

// 설정한 frame 사이즈 측정

Dimension frameSize = jframe.getSize();

// 자신의 windowscreen 사이즈 측정

Dimension windowSize = Toolkit.getDefaultToolkit().getScreenSize();

// 출력해보면 두 사이즈가 출력되는걸 확인할 수 있다.

System.out.println(frameSize + " " + windowSize);

//설정할 위치에 (윈도우width-프레임width)/2, (윈도우height-프레임height)/2를 입력한다

jframe.setLocation((windowSize.width - frameSize.width) / 2,

(windowSize.height - frameSize.height) / 2);

//프레임창 활성화하면 현재 모니터에 중앙에 프레임이 실행되는걸 볼수 있다.

jframe.setVisible(true);

'JAVA > 자바' 카테고리의 다른 글

자바 상속 Has-a와 Is-a 관계  (0) 2015.06.30
자바 필드,오버라이딩  (0) 2015.06.29
자바 반올림,소수점 버리기  (0) 2015.06.28
자바 NumberFormat클래스 자릿수 끊어주기  (0) 2015.06.28
자바 소수점자르기  (0) 2015.06.28
블로그 이미지

왕왕왕왕

,