728x90
SMALL
- Static이 없다면?
- 메소드 오버로딩
- Pro02클래스
package Project01;
public class Pro02 {
String name; // 이름
int age; // 나이
// 생성자 메소드
// 이름만 초기화하면서 새로운 Pro02 객체를 생성한다
public Pro02(String NewName)
{
name = NewName;
}
// 나이만 초기화하면서 새로운 Pro02 객체를 생성한다
public Pro02(int NewAge)
{
age = NewAge ;
}
// 이름과 나이를 초기화하면서 새로운 Pro02 객체를 생성한다
public Pro02 (String NewName, int NewAge)
{
name = NewName;
age = NewAge ;
}
}
- Pro02Driver
package Project01;
public class Pro02Driver {
public static void main(String[] args)
{
// 이름이 ‘홍길동’인 Pro02 객체를 생성하고 p1이 가리키게 한다(생성자 오버로딩)
Pro02 p1 = new Pro02("홍길동");
// p1의 나이를 27로 변경한다
p1.age= 27;
// p1의 이름과 나이를 출력한다
System.out.println(p1.age + p1.name);
// 나이가 18인 Pro02 객체를 생성하고 p2가 가리키게 한다(생성자 오버로딩)
Pro03 p2 = new Pro03(18);
// p2의 이름을 '손오공'으로 변경한다
p2.name = "손오공";
// p2의 이름과 나이를 출력한다 <-- 요건 생각을 많이 해야함
System.out.println(p2.age + p2.name);
// 이름이 ‘이도령’이고 나이가 20인 Pro02 객체를 생성하고 p3이 가리키게 한다(생성자 오버로딩)
Pro03 p3 = new Pro03("이도령", 20);
// p3의 이름과 나이를 출력한다 <-- 요건 생각을 많이 해야함
System.out.println(p3.age + p3.name);
}
}
- Pro03클래스
package Project01;
public class Pro03 {
private String name; // 이름
private int age; // 나이
// 생성자 메소드 - 이름만 초기화한다
public Pro03(String NewName)
{
this(NewName, 0);
}
// 생성자 메소드 - 나이만 초기화한다
public Pro03(int NewAge)
{
this(null, NewAge);
}
// 생성자 메소드 - 이름과 나이를 초기화한다
public Pro03(String NewName, int NewAge)
{
setName(NewName);
setAge(NewAge);
}
// 사람의 이름을 반환한다
public String getName()
{
return name;
}
// 사람의 나이를 반환한다
public int getAge()
{
return age;
}
// 현 Pro03 객체의 정보에 대한 문자열을 반환한다
public String toString ()
{
return (name + "\t\t" + age);
}
// 사람의 이름을 주어진 값으로 변경한다
public void setName(String NewName)
{
name = NewName;
}
// 사람의 나이를 주어진 값으로 변경한다
public void setAge(int NewAge)
{
age = NewAge;
}
}
- Pro03Driver클래스
package Project01;
public class Pro03Driver {
public static void main(String[] args)
{
// 이름이 ‘홍길동’인 Pro03 객체를 생성하고 p1이 가리키게 한다
Pro03 p1 = new Pro03("홍길동");
// p1의 나이를 27로 변경한다
p1.setAge(27);
// p1의 이름과 나이를 출력한다
System.out.println(p1.toString( ));
// 나이가 18인 Pro03 객체를 생성하고 p2가 가리키게 한다
Pro03 p2 = new Pro03(18);
// p2의 이름을 '손오공'으로 변경한다
p2.setName("손오공");
// p2의 이름과 나이를 출력한다
System.out.println(p2.toString( ));
// 이름이 ‘이도령’이고 나이가 20인 Pro03 객체를 생성하고 p3이 가리키게 한다
Pro03 p3 = new Pro03("이도령", 20);
// p3의 이름과 나이를 출력한다
System.out.println(p3.toString( ));
}
}
- student 클래스
package sample;
public class Student {
@Override
public String toString() {
return "Student [name=" + name + ", number=" + number + "]";
}
private String name; //이름
private int number; //번호
// 이름만 초기화하면서 새로운 Student 객체를 생성한다
public Student(String NewName) {
setName(NewName);
}
// 번호만 초기화하면서 새로운 Student 객체를 생성한다
public Student(int NewNumber) {
setNumber(NewNumber);
}
// 이름과 번호를 초기화하면서 새로운 Student 객체를 생성한다
public Student(int NewNumber, String NewName){
setNumber(NewNumber);
setName(NewName);
}
// 이름을 주어진 값으로 변경한다
public void setName(String NewName) {
name = NewName;
}
// 번호를 주어진 값으로 변경한다
public void setNumber(int NewNumber) {
number = NewNumber;
}
// 이름을 반환한다
public String getName() {
return name;
}
// 번호를 반환한다
public int getNumber() {
return number;
}
}
- ProcessStudentArray클래스
package sample;
import java.util.Scanner;
class ProcessStudentArray {
public static void main(String[] args) {
Student[] stdArray;
String name;
int number;
int i;
Scanner in = new Scanner(System.in);
stdArray = new Student[4];
for (i = 0; i < stdArray.length; i++) {
System.out.println("학생의 이름을 입력하세요");
name = in.next();
System.out.println("학생의 학번을 입력하세요");
number = in.nextInt();
stdArray[i] = new Student(number, name);
}
//stdArray배열내용 출력
System.out.println();
System.out.println("학번 \t 이름");
for ( i = 0; i < stdArray.length; i++) {
System.out.println(stdArray[i].getNumber( ) + " \t" + stdArray[i].getName( ));
}
}
}
부모를 배열로 만들고 밑에 미니카랑플레인 객체생성가능
728x90
LIST
'JAVA > Java' 카테고리의 다른 글
20201012_14 접근제한자, 오버로딩, 오버라이딩 (0) | 2020.10.12 |
---|---|
20201008_13 (0) | 2020.10.08 |
20201008_13 교과목어쩌구 모범답안 (0) | 2020.10.08 |
20201007_12 주사위프로그램 (0) | 2020.10.08 |
20201007_12 Review 교과목어쩌구 프로그램 (0) | 2020.10.07 |
댓글