22.12.08(목) 문제풀이 - 클래스
문제1
문제보기
다음과 같은 변수를 가지는 Student 클래스를 완성하시오
* 데이터 타입 변수명 설명
* 문자열 name 이름
* 정수 ban 반
* 정수 no 번호
* 정수 kor 국어점수
* 정수 eng 영어점수
* 정수 math 수학점수
*
* 메서드
* 메서드명 : getTotal
* 기능 : 국어, 영어, 수학점수를 다 더해서 반환함
* 리턴타입 : 정수
* 매개변수 없음
*
* 메서드명 : getAverage
* 기능 : 총점을 과목수(3)로 나눈 평균을 반환함
* 리턴타입 : 실수
* 매개변수 없음
*/
package 테스트;
public class Student {
String name;
int ban;
int no;
int kor;
int eng;
int math;
int getTotal() {
return kor+eng+math;
}
double getAverage() {
return getTotal()/3.0;
}
}
package 테스트;
public class YTT {
public static void main(String[] args) {
Student s = new Student();
s.name = "Teemo";
s.ban = 1;
s.no=2;
s.kor=100;
s.eng=60;
s.math=76;
System.out.println("이름 : "+ s.name);
System.out.println("반 : "+ s.ban);
System.out.println("번호 : "+ s.no);
System.out.println("국어 : "+ s.kor);
System.out.println("영어 : "+ s.eng);
System.out.println("수학 : "+ s.math);
}
}
문제2
문제보기
다음과 같이 실행결과를 얻도록 Student클래스에 생성자와 info()메서드를 추가
<실행결과>
이름 : Teemo
반 : 2
국어 : 100
영어 : 60
수학 : 76
총점 : 236
평균 : 78.66666666
package 테스트;
public class Student {
String name;
int ban;
int no;
int kor;
int eng;
int math;
public Student(String name, int ban, int no, int kor, int eng, int math) {
this.name = name;
this.ban = ban;
this.no = no;
this.kor = kor;
this.eng = eng;
this.math = math;
}
void info() {
System.out.println("이름 : " + name);
System.out.println("반 : " + ban);
System.out.println("번호 : " + no);
System.out.println("국어 : " + kor);
System.out.println("영어 : " + eng);
System.out.println("수학 : " + math);
System.out.println("총점 : " + getTotal());
System.out.println("수학 : " + getAverage());
}
int getTotal() {
return kor + eng + math;
}
double getAverage() {
return getTotal() / 3.0;
}
}
package 테스트;
public class Main {
public static void main(String[] args) {
Student s = new Student("Teemo",1,2,100,60,76);
s.info();
}
}
결과
이름 : Teemo
반 : 1
번호 : 2
국어 : 100
영어 : 60
수학 : 76
총점 : 236
수학 : 78.66666666666667
문제3
문제보기
다음 중 생성자에 대한 설명으로 옳지 않은 것을 모두 고르시오
1.모든 생성자의 이름은 클래스의 이름과 동일해야한다
2.생성자는 객체를 생성하기 위한 것이다.
3,클래스에는 생성자가 반드시 하나 이상 있어야 한다.
4.생성자가 없는 클래스는 컴파일러가 기본 생성자를 추가한다.
5.생성자는 오버로딩 할 수 없다.
정답
2. 생성자는 객체를 생성하는 것이 아니다 객체생성은 ->new~~~ 생성자는 초기화 못적
3.클래스를 만들면 본인이 만들지 않아도 자바 자체 기본적으로 하나를 만든다
4.자바가 알아서 컴파일러(코드들을 자바가 알아볼수있게 변환 (01010111이런식으로 ))를 생성한다 -- 정답은 아님
다음 중 오버로딩이 성립하기 위한 조건이 아닌 것을 모두 고르시오
1.메서드의 이름이 같아야한다
2.매개변수의 개수와 타입이 달라야한다
3.리턴타입이 달라야 한다.
4.매개변수 이름이 달라야 한다
정답
3,4
문제4
메서드명 : shuffle
기능 : 배열에 담긴 값의 위치를 바꾸는 작업
리턴타입 : 정수형 배열
매개변수 : 정수형 배열
package 테스트;
import java.util.Arrays;
public class test07 {
public static int[] shuffle(int[]arr) {
int tmp; //임시저장변수
for(int i =0; i<arr.length;i++) {
int j = (int)(Math.random()*arr.length);
tmp = arr[i];
arr[i]=arr[j];
arr[j]= tmp;
}
return arr;
}
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,7,8,9};
int[] result = shuffle(arr);
System.out.println(Arrays.toString(result));
//Arrays를 이용 배열값출력
}
}
[1, 9, 2, 5, 8, 4, 6, 3, 7]
랜덤으로 출력