겉바속촉
[자바] 생성자 연습하기 본문
728x90
반응형
생성자를 연습해보도록할게요:)
예제1) class랑 main 메서드를 한 곳에서 해결하기
package day0601;
class Person1{
private String name;
private String Univ;
private String major;
private int grade;
//생성자
public Person1(String name, String Univ, String major, int grade) {
this.name = name;
this.Univ = Univ;
this.major = major;
this.grade = grade;
}
//setter, getter
public String getName()
{
return name;
}
public String getUniv()
{
return Univ;
}
public String getmajor()
{
return major;
}
public int getGrade()
{
return grade;
}
}
public class PersonTest_14 {
public static void main(String[] args) {
//생성
Person1 p1 = new Person1("아무개", "홍익대학교", "관광경영학과", 4);
//setter로 수정
//getter로 조회
//String name = p1.getName(); ---라고 했으면 아래 출력문에 그냥 system.out.println("이름 : " + name); 요런식으로
//출력
System.out.println("[신상정보]");
System.out.println("이름 : " + p1.getName());
System.out.println("학교 : " + p1.getUniv());
System.out.println("전공 : " + p1.getmajor());
System.out.println("학년 : " + p1.getGrade());
}
}
예제2) class랑 main 메서드를 각각 다른 곳에서 해결하기
InfoDta_15 ---> 여러가지 메서드 생성
InfoDataTest_15 ---> main 메서드에서 호출
InfoDta_15
package day0601;
public class InfoDta_15 {
String name;
String gender;
String addr;
static String ban = "혁신성장";
static int cnt;
//멤버메소드
public void setData(String name, String gender, String addr)
{
this.name = name;
this.gender = gender;
this.addr = addr;
}
//출력을 한 번에 할 수 있는 메소드
public void getData()
{
cnt++;
System.out.println("**학생" + cnt + "정보***");
System.out.println("이름 : " + this.name);
System.out.println("소속학급: " + InfoDta_15.ban);
System.out.println("성별 : " + this.gender);
System.out.println("주소 : " + this.addr);
}
}
InfoDataTest_15
package day0601;
public class InfoDataTest_15 {
public static void main(String[] args) {
//디폴트생성자로 생성
InfoDta_15 inf1 = new InfoDta_15();
//참조변수명.메소드명으로 수정, 조회
inf1.setData("최지우", "여성", "서울 구로시");
inf1.getData();
InfoDta_15 inf2 = new InfoDta_15();
inf2.setData("김환", "남성", "경기도 용인시");
inf2.getData();
}
}
예제3) class랑 main 메서드를 각각 다른 곳에서 해결하기
Sangpum_16 ---> 여러가지 메서드 생성
SangpumTest_16 ---> main 메서드에서 호출
sangpum_16
package day0601;
public class Sangpum_16 {
private String sangpum; //상품명
private int su; //수량
private int dan; //단가
//3개를 한번에 수정하는 메서드
public void setData(String sangpum, int su, int dan)
{
this.sangpum = sangpum;
this.su = su;
this.dan = dan;
}
//3개를 한번에 출력하는 메소드
public void getDta()
{
System.out.println("[상품정보]");
System.out.println("상품명: " + this.sangpum);
System.out.println("수량: " + this.su + "개");
System.out.println("단가: " + this.dan + "원");
System.out.println("=========================");
}
}
sangpumTest_16
package day0601;
public class SangpumTest_16 {
public static void main(String[] args) {
Sangpum_16 sang1 = new Sangpum_16();
sang1.setData("쵸코파이",20,500);
sang1.getDta();
sang1.setData("자갈치",30,1000);
sang1.getDta();
sang1.setData("백산수",50,800);
sang1.getDta();
}
}
예제4) class랑 main 메서드를 한 곳에서 해결하기
여기서 포인트는 static 뒤에 final을 붙여서 값 변경이 되지 않도록 해볼게요:)
package day0601;
class Score{
private String name;
private int java;
private int spring;
//final이 붙으면 상수가 된다(값변경안됨)
static final String TITLE = "중간고사점수";
//각각의 setter, getter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getJava() {
return java;
}
public void setJava(int java) {
this.java = java;
}
public int getSpring() {
return spring;
}
public void setSpring(int spring) {
this.spring = spring;
}
//합계
public int getTot() {
int Tot = java + spring;
return Tot;
}
//평균
public double getAvg() {
return getTot()/2.0;
}
}
public class ScoreTest_17 {
public static void main(String[] args) {
Score sc1 = new Score();
sc1.setName("박지윤");
sc1.setJava(88);
sc1.setSpring(99);
//get매소드로 변수처리
int tot = sc1.getTot();
double avg = sc1.getAvg();
System.out.println(Score.TITLE);
//Score.TITLE = "값변경"; //final붙으면 수정안됨
System.out.println("이름: "+ sc1.getName());
System.out.println("자바: "+ sc1.getJava());
System.out.println("스프링: " + sc1.getSpring());
System.out.println("합계: " + tot);
System.out.println("평균: " + avg);
}
}
다른 방식으로 하고싶으면
다음 코드를 추가하시고 그 밑의 코드를 main에다가 추가해주세요:)
public Score(String name, int java, int spring) {
this.name = name;
this.java = java;
this.spring = spring;
}
Score sc1 = new Score("박지윤", 88, 99);
컴파일 하신 후에 콘솔창을 확인해보세요
그래도 동일하게 출력되는 것을 확인하실 수 있습니다:)
728x90
반응형
'IT일기(하반기) > 블록체인' 카테고리의 다른 글
[자바] 예외(Exception) (0) | 2020.06.03 |
---|---|
[자바] 배열을 활용한 호출 (0) | 2020.06.02 |
method 연습하기 (0) | 2020.06.01 |
자동생성으로 set, get 완성 (0) | 2020.06.01 |
class호출-창 2개 (0) | 2020.06.01 |