겉바속촉

[자바] 생성자 연습하기 본문

IT일기(하반기)/블록체인

[자바] 생성자 연습하기

겉바속촉 2020. 6. 1. 17:06
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);

 

즉 4줄짜리 코드가 1줄로도 가능해진다는 것이죠!^^!

 

컴파일 하신 후에 콘솔창을 확인해보세요

그래도 동일하게 출력되는 것을 확인하실 수 있습니다:)

 

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