일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Linux
- tas tac
- 코테
- OPEN CURSOR
- DDL 추출
- implicit
- VM 설정
- X11 forwarding
- tibero
- terraform
- Python
- tablespace
- 묵시적 커서
- golang
- db
- tac
- oracle
- 파이썬
- CentOS
- 리눅스
- vm
- vm tac 구성
- 프로그래머스
- python3.7
- 코딩테스트
- Tuple
- X11
- 암시적 커서
- VMware
- 티베로
Archives
- Today
- Total
줄기세포
[Basic] Java로 객체지향 프로그래밍(OOP)을 구현해보자. 본문
http:// https://novice-data.tistory.com/entry/Java-Basic-Array
위에 글을 읽고오시면 도움이 됩니다.
위에서 구현한 학생성적 출력을 OOP로 만들어 보려고 합니다.
class = 설계도 / instance = 제품 |
class와 instance의 개념에 대한 많은 설명이 있지만, 저는 위의 설명이 가장 쉽게 이해가 됩니다.
StudentDTO class를 Oop 패키지 안에 만들고 field값을 만들어 주었습니다.
// StudentDTO Class
package Oop;
import java.io.Serializable;
public class StudentDTO implements Serializable {
// Serializable 데이터 직렬화에 사용
// 순서대로 읽음 (작성 순서대로)
private String name;
private int kor;
private int eng;
private int mat;
private int phi;
}
StudentTest class를 역시 Oop 패키지 안에 만들고, instance를 생성하고 학생의 성적을 입력해 보겠습니다.
// StudentTest Class
package Oop3;
public class StudentTest {
public static void main(String[] args) {
StudentDTO s1 = new StudentDTO();
s1.setName("신이나");
s1.setKor(100);
s1.setEng(90);
s1.setMat(80);
s1.setPhi(70);
//캡슐화
System.out.println("이름\t국어\t영어\t수학\t철학");
System.out.println(s1);
}
}
에러가 발생합니다.
getter와 setter를 형성해주지 않아서 그렇습니다.
다시 StudentDTO class에 getter와 setter를 만들고
tostring을 만들어 줍니다. ( to string은 변수를 확인하기 위해서 stringtype으로 return하여 print하겠습니다.)
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 getMat() {
return mat;
}
public void setMat(int mat) {
this.mat = mat;
}
public int getPhi() {
return phi;
}
public void setPhi(int phi) {
this.phi = phi;
}
@Override
public String toString() {
return name+"\t"+ kor +"\t"+ eng +"\t"+ mat +"\t"+ phi;
}
자바이클립스의 generate getter and setter를 이용하시면 빠르고 편합니다.
출력을 하면
이번에 총점과 평균도 구하는 method를 구현하겠습니다.
StudentDTO toString method를 다음과 같이 변경하고
@Override
public String toString() {
return name+"\t"+ kor +"\t"+ eng +"\t"+ mat +"\t"+ phi+ "\t" +
getTotal() + "\t" + getAverage()+ "\t";
}
private int getAverage() {
return getTotal()/4;
}
private int getTotal() {
// TODO Auto-generated method stub
return getKor()+getEng()+getMat()+getPhi();
}
총점과 평균을 계산하여 return하는 getter를 각각 생성해줍니다.
package Oop;
public class StudentTest {
public static void main(String[] args) {
StudentDTO s1 = new StudentDTO();
s1.setName("신이나");
s1.setKor(100);
s1.setEng(90);
s1.setMat(80);
s1.setPhi(70);
//캡슐화
System.out.println("이름\t국어\t영어\t수학\t철학\t총점\t평균");
System.out.println(s1);
}
}
main method를 실행하면
아래와 같이 출력됩니다.
간단하게 OOP를 생성하는 방법을 알아보았습니다.
아래 풀 코드 복사하셔서 편하게 연습해보세요.
//StudentDTO Class
package Oop;
import java.io.Serializable;
public class StudentDTO implements Serializable {
// Serializable 데이터 직렬화에 사용
// 순서대로 읽음 (작성 순서대로)
private String name;
private int kor;
private int eng;
private int mat;
private int phi;
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 getMat() {
return mat;
}
public void setMat(int mat) {
this.mat = mat;
}
public int getPhi() {
return phi;
}
public void setPhi(int phi) {
this.phi = phi;
}
@Override
public String toString() {
return name+"\t"+ kor +"\t"+ eng +"\t"+ mat +"\t"+ phi+ "\t" +
getTotal() + "\t" + getAverage()+ "\t";
}
private int getAverage() {
return getTotal()/4;
}
private int getTotal() {
// TODO Auto-generated method stub
return getKor()+getEng()+getMat()+getPhi();
}
}
//StudentTest Class
package Oop;
public class StudentTest {
public static void main(String[] args) {
StudentDTO s1 = new StudentDTO();
s1.setName("신이나");
s1.setKor(100);
s1.setEng(90);
s1.setMat(80);
s1.setPhi(70);
//캡슐화
System.out.println("이름\t국어\t영어\t수학\t철학\t총점\t평균");
System.out.println(s1);
}
}
'Java > 기본(Basic)' 카테고리의 다른 글
[Basic] Java로 Array 만들기, 출력하기, 행렬이용 (0) | 2020.07.15 |
---|
Comments