❓
문제 :
Outer10클래스의 내부 클래스 Inner1, inner2 의 멤버변수 iv,cv의 값 출력되도록
구동 클래스를 완성하시오
[결과]
Outer10.Inner1.iv:100
Outer10.Inner1.cv:10
Outer10.Inner2.iv:200
Outer10.Inner2.cv:20
package chap11;
class Outer10 {
int iv;
static int cv;
class Inner1 extends Object {
int iv = 100;
static final int cv = 10;
}
static class Inner2 {
int iv = 200;
static int cv = 20;
}
}
public class Test1 {
public static void main(String[] args) {
Outer10.Inner1 ii = new Outer10().new Inner1();
System.out.println("Outer10.Inner1.iv:" + ii.iv);
System.out.println("Outer10.Inner1.cv:" + Outer10.Inner1.cv);
Outer10.Inner2 ii2 =new Outer10.Inner2();
System.out.println("Outer10.Inner2.iv:" + ii2.iv);
System.out.println("Outer10.Inner2.cv:" + Outer10.Inner2.cv);
}
}
❓
문제 :
결과가 다음과 같이 나오도록 프로그램 완성하기
[결과]
지역 변수 value=30
내부클래스 객체의 멤버 value=20
외부클래스 객체의 멤버 vlaue=10
package chap11;
class Outer11 {
int value = 10;
class Inner {
int value = 20;
void method1() {
int value = 30;
System.out.println("지역 변수 value=" + value);
System.out.println("내부클래스 객체의 멤버 value=" +Outer11.this.value );
System.out.println("외부클래스 객체의 멤버 value=" + Outer11.Inner.this.value);
}
}
}
public class Test2 {
public static void main(String[] args) {
new Outer11().new Inner().method1();
}
}
❓
문제 :
학생클래스의 객체중 학번과 이름이 같다면 같은 학생이 되도록 Student 클래스 수정하기
[결과]
[학번=100, 이름=홍길동,전공=경영]과 [학번=100, 이름=홍길동,전공=컴공]는 다른 객체입니다.
[학번=100, 이름=홍길동,전공=경영]과 [학번=100, 이름=홍길동,전공=컴공]학생은 같은 학생입니다.
package chap11;
/*
학생클래스의 객체중 학번과 이름이 같다면 같은 학생이 되도록 Student 클래스 수정하기
[결과]
[학번=100, 이름=홍길동,전공=경영]과 [학번=100, 이름=홍길동,전공=컴공]는 다른 객체입니다.
[학번=100, 이름=홍길동,전공=경영]과 [학번=100, 이름=홍길동,전공=컴공]학생은 같은 학생입니다.
*/
class Student {
int studno;
String name;
String major;
public Student(int studno, String name, String major) {
this.studno = studno;
this.name = name;
this.major = major;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof Equal) {
Equal e = (Equal)obj;
return e.name == name;
} else return false;
}
@Override
public String toString(){
return "[학번="+studno+", 이름 ="+name+",전공="+major+"]";
}
@Override
public int hashCode() {
return studno;
}
}
public class Test3 {
public static void main(String[] args) {
Student s1 = new Student(100,"홍길동","경영");
Student s2 = new Student(100,"홍길동","컴공");
if(s1 == s2) {
System.out.println(s1+"과 "+s2+"는 같은 객체입니다.");
} else {
System.out.println(s1+"과 "+s2+"는 다른 객체입니다.");
}
if(s1.equals(s2)) {
System.out.println(s1+"과 "+s2+"학생은 같은 학생입니다.");
} else {
System.out.println(s1+"과 "+s2+"학생은 다른 학생입니다.");
}
}
}
'수업 문제(국비 지원) > Java' 카테고리의 다른 글
| [JAVA] 2022.09.13 - DataClass 달력만들기 (0) | 2023.04.29 |
|---|---|
| [JAVA] 2022.09.09 - StringClass (0) | 2023.04.29 |
| [JAVA] 2022.09.06 - 예외 처리 (0) | 2023.04.29 |
| [JAVA] 2022.09.05 - java 접근 제한자, 클래스 구현 (0) | 2023.04.29 |
| [JAVA] 서술형-클래스 생성자 문제 (0) | 2023.04.28 |