배열을 이용하여 생성자에 매개 값을 줌 으로 변수를 초기화 시켜주고 각 학생의 총점수와 평균을 구하고 반 평균 점수를 구하기 위해서 각 개인 평균값을 저장하여 배열에 저장된 수 만큼 나눠서 구한다. |
package com.test02;
public class Student {
private String name;
private int kor;
private int eng;
private int math;
int sum;
double avg;
변수가 생성자에서 초기화 될 수 있도록 생성자에 매개변수 저장
public Student(String name, int kor, int eng, int math) {
this.name = name;
this.kor = kor;
this.eng = eng;
this.math = math;
}
각 학생의 총점을 더하고 합산 값을 리턴 메소드 작성
public int total() {
sum = this.kor + this.eng + this.math;
return sum;
}
// double 타입으로 평균을 구하기 위해 총점을 과목 수 만큼 나눈후 값을 리턴 해주는 메소드
public double avg() {
this.avg = (double)sum / 3;
return this.avg;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getKor() {
return kor;
}
public void setKor(int kor) {
this.kor = kor;
}
public int getEng() {
return eng;
}
public void setEng(int eng) {
this.eng = eng;
}
public int getMath() {
return math;
}
public void setMath(int math) {
this.math = math;
}
public String toString() {
return name;
}
}
----------------------------------------------------------------------------------------
package com.test02;
public class StudentTest {
public static void main(String[] args) {
//Student 객체배열을 만들고 인스턴스와 생성자 초기화
Student[] stu = {
new Student("김",96,90,80),
new Student("조",90,80,70),
new Student("이",70,86,60),
new Student("최",75,80,90),
new Student("박",80,70,85),
new Student("강",70,75,70)
};
double sum1 = 0;
double avg1 = 0;
// 개인 총점과, 개인평균을 구하기 위한 반복문 작성
for(int i =0; i <stu.length; i++) {
System.out.println("["+i+"]"+stu[i]+"-> 개인 총점: "+stu[i].total()+", 개인 평균:"+stu[i].avg());
//sum1과 출력문의 순서가 바뀌게 된다면 avg() 메서드안에 개인 총점 점수가 저장되어있지않기 때문에 avg1값은 0이 출력된다.
sum1 += stu[i].avg();
}
//반평균을 구하기 위해 저장된 개인 평균 값에 배열의 수 만큼 나눠주면 반 평균 점수가 된다./
avg1 = sum1 / stu.length;
System.out.println("반 평균: "+avg1);
}
}
상속을 이용하여 부모 클래스의 메소드를 오버라이딩 하고, 생성자를 정의하여 인스턴스 변수를 초기화 한 예제 |
부모 클래스 정의
package com.test01;
public class Person {
String name;
//주민등록 번호 rrn(resident registration number)
String rrn;
int age;
String gender;
public Person(String name, String rrn,int age,String gender) {
this.name = name;
this.rrn = rrn;
this.age = age;
this.gender = gender;
}
public String toString() {
return "저는 "+name+" 입니다."+age+" 살 입니다.";
}
public void genderCheck() {
if(gender.equals("남자")) {
System.out.println("남자입니다.");
}else if(gender.equals("여자")){
System.out.println("여자입니다.");
}else {
System.out.println("올바른 성별을 입력해주세요.");
}
}
}
======================================================================================
자식 클래스 정의
package com.test01;
public class Male extends Person{
public Male(String name, String rrn,int age,String gender) {
super(name,rrn,age, gender);
}
public String toString() {
return "저는 "+name+" 입니다."+gender+" 이고 "+age+" 살 입니다.";
}
}
=======================================================================================
자식 클래스 정의
package com.test01;
public class Female extends Person{
public Female(String name, String rrn, int age,String gender) {
super(name, rrn, age, gender);
}
public String toString() {
return "저는 "+name+" 입니다."+gender+" 이고 "+age+" 살 입니다.";
}
}
========================================================================================
구현부 클래스
package com.test01;
public class PersonTest {
public static void main(String[] args) {
male,femal 인스턴스 생성하면서 변수를 초기화
Person male = new Male("강감찬","2000-1",30,"남자");
Person female = new Female("릴리","2000-2",29,"여자");
Person male2 = new Male("이순신","2001-1",31,"남");
toString함수를 오버라이딩 하여 객체 인스턴스를 호출.
System.out.println(male);
System.out.println(female);
성별을 구분해주는 check메소드
gender 변수를 이용하여 조건문에서 "남자"라는 값이 입력되면 남자입니다 출력
"여자"일 경우 여자입니다 출력 '남자' or '여자' 값이 입력되지 않는다면 성별을 다시 확인
하라는 출력문으로 구성
male.genderCheck();
female.genderCheck();
male2.genderCheck();
}
}
조건문을 이용하여 나이의 값을 받아 예방 접종 대상을 구분하고 건강검진 대상 여부를 판별하게 해주는 예제
|
package com.test01;
public class Member {
String name;
String ph;
String major;
int grade;
String email;
int birth;
String address;
public Member(String name, String ph, String major, int grade, String email) {
this.name = name;
this.ph = ph;
this.major = major;
this.grade = grade;
this.email = email;
}
public Member(String name, String ph, String major, int grade, String email, int birth, String address) {
this(name, ph, major, grade, email);
this.birth = birth;
this.address = address;
}
public int checkBirth() {
//birth 초기값이 0이 될 수 없도록 조건문 설정
if (birth != 0) {
// 15세미만 65세이상 만 가능한 조건
if (2006 <= birth || birth <= 1956) {
System.out.println("무료 예방접종이 가능합니다.");
} else {
System.out.println("무료 접종 대상이 아닙니다.");
}
} else {
System.out.println("출생연도를 입력해주세요.");
}
return birth;
}
public int testBirth() {
if (birth != 0) {
// 대한민국 20세 이상
if (birth < 2001) {
// 무료로 2년마다 건강검진을 받을 수 있고
System.out.println("무료로 2년마다 건강 검진을 받을 수 있습니다.");
// 짝수해에 태어난 사람은 올해가 짝수년이라면 검사 대상이 되고
if (birth % 2 == 0) {
System.out.println("올해 건강검진 대상자 입니다.");
}
// 40이상의 경우는 암 검사도 무료로 검사를 할 수 있다.
if (birth < 1982) {
System.out.println("40세 이상이므로 암 검사도 무료로 검사를 할 수 있습니다.");
}
}
} else {
System.out.println("출생연도를 기입해주세요.");
}
return birth;
}
public void info() {
System.out
.println(name + ", " + ph + ", " + major + ", " + grade + ", " + email + ", " + birth + ", " + address);
}
}
========================================================================================================================================
package com.test01;
public class MemberTest {
public static void main(String[] args) {
Member member = new Member("홍길동","010-123-1234","전기",3,"111@111.com");
Member member1 = new Member("이순신","010-321-4321","전자",1,"222@222.com",1995,"서울");
member.checkBirth();
member.testBirth();
member.info();
System.out.println("============================================================");
member1.checkBirth();
member1.testBirth();
member1.info();
}
}