4월 12일 내용정리
1.클래스는 설계도, 틀
2.필드, 생성자, 메소드=>클래스 멤버구성
3.선언 클래스 안에서는 선언만하고 메소드를 통해서 외부와의 연결한다. 자판기의 버튼 같은 외부와의 연결된 무언가
4.아래는 접근제한자를 쓰지 않았지만 임의로 public이 생성되어있다.
접근제한자 필드타입 필드이름=값;
접근제한자 필드타입 필드이름; =>필드타입으로 초기화
5.생성자:이름은 클래스이름과 같고 반환타입은 없다.
new 연산자와 함께 사용, 객체를 생성할때 호출된다.
생성자 오버로딩(메서드 이름은 같지만 타입이다르거나,매개변수가 다른것)할수 있다.
접근제한자 클래스명(){}
접근제한자 클래스명(매개변수타입 매개변수,매개변수타입 매개변수...){}
6.메서드는 처리작업, 외부와의 연결역할
접급제한자 반환타입 메소드이름(){}
접급제한자 반환타입 메소드이름(매개변수타입 매개변수,매개변수타입 매개변수...){}
*접급제한자 void 메소드이름(매개변수타입 매개변수,매개변수타입 매개변수...){}
7.실행 클래스는 위와 같이 main메서드를 가지고 있어야한다.
*클래스타입 변수= new 클래스();
선언클래스
package study_0412;
public class student {
//필드선언
int hakNum;
String stuName;
int kor;
int eng;
//생성자 선언
public student() {}
public student(int hakNum, String stuName,int kor,int eng) {
this.hakNum=hakNum;
this.stuName=stuName;
this.kor=kor;
this.eng=eng;
}
//메소드선언
// public int hap(int kor,int eng) {
// this.kor=kor; //매번 매개변수를 받아서 처리하기가 불편하여 생성자를 통해서
// this.eng=eng; //먼저 세팅해놓으면 편하기 때문 생성자 사용
// int sum=kor+eng;
// return sum;
// }
//미리 생성자를 선언해서 식이 간단해짐
public int hap() {
return kor+eng;
}
// public double avg(int korScore,int engScore) {
// kor=korScore; 변수와 매개변수(지역변수)가 구분이 되기 때문에 this를 사용안해도됨.
// eng=engScore; 매번 매개변수를 받아서 처리하기가 불편하여 생성자를 통해서 먼저 세팅해놓으면 편하기 때문 생성자 사용
// double avg=(double)(kor+eng)/2;
// return avg;
// }
//미리 생성자를 선언해서 식이 간단해짐
public double avg() {
return (double)(kor+eng)/2;
}
public void sungShow() {
System.out.println("========================"+stuName+"========================");
System.out.println("학번:"+hakNum);
System.out.println("국어점수:"+kor);
System.out.println("영어점수:"+eng);
System.out.println("합계:"+hap());
System.out.println("평균:"+avg());
}
}
실행 클래스
package study_0412;
public class student_Test {
public static void main(String[] args) {
student jin=new student(123,"이진",50,70);
student pack=new student(124,"박박",90,85);
jin.sungShow();
System.out.println();
pack.sungShow();
//필드를 public 으로 설정해서 실행 클래스에서 값이 변경된다.
System.out.println();
jin.kor=100;
jin.sungShow();
}
}