[22.12.08] 33일차 [백엔드] Java 생성자

W·2022년 12월 8일
0

국비

목록 보기
46/119
  • Student 클래스
package test;

// 클래스 정의 Student
// 멤버 변수 int num String name
// int html, int java, int db 변수
// 메서드 sum  리턴할 형 int sum(), 리턴할형 double avg()

public class Student {
		public int num;
		public String name;
		public int html;
		public int java;
		public int db;
		
		public int sum() {
			return html+java+db;
		}
		
		public double avg() {
			return (html+java+db)/3.0;
		}
}
package test;

public class Test1 {

	public static void main(String[] args) {

	// Student 객체생성
	// 멤버변수 값을 저장, 메서드 호출
		
		Student s = new Student();
		
		s.num=1;
		s.name="홍길동";
		s.html=90;
		s.java=95;
		s.db=80;
		System.out.println("학생번호 : " + s.num);
		System.out.println("학생이름 : " + s.name);
		System.out.println("html점수 : " + s.html);
		System.out.println("java점수 : " + s.java);
		System.out.println("db점수 : " + s.db);
		System.out.println("총점 : " + s.sum());
		System.out.println("평균 : " + s.avg());
		

	}

}
<출력>
학생번호 : 1
학생이름 : 홍길동
html점수 : 90
java점수 : 95
db점수 : 80
총점 : 265
평균 : 88.33333333333333
  • Car 클래스
package test;

// 클래스 정의  Car
// 멤버변수  String carName
//         int speed
// 메서드 리턴할형 int speedUp(10) speed 10 증가하고 리턴
//      리턴할형 int speedDown(5) speed 5 감소하고 리턴
public class Car {
	public String carName;
	public int speed;
	
	public int speedUp (int a) {
		return speed + a;
	}
	
	public int speedDown (int a) {
		return speed - a;
	}
	
	
	
}
package test;

public class Test2 {

	public static void main(String[] args) {
		// 클래스 정의  Car
		// 멤버변수  String carName
		//         int speed
		// 메서드 리턴할형 int speedUp(10) speed 10 증가하고 리턴
		//      리턴할형 int speedDown(5) speed 5 감소하고 리턴
		
		// Car 객체생성 => 기억장소 할당
		// 멤버변수 값을 저장, 메서드 호출
		Car c = new Car();
		c.carName = "산타페";
		c.speed = 30;
		
		System.out.println("차 이름 : " + c.carName);
		System.out.println("속도 : " + c.speed);
		System.out.println("10 증가 속도 : " + c.speedUp(10));
		System.out.println("5 감소 속도 : " + c.speedDown(5));

	}

}
<출력>
차 이름 : 산타페
속도 : 30
10 증가 속도 : 40
5 감소 속도 : 25
	public int speedUp (int a) {
		speed = speed + a;
		return speed;
	}
	
	public int speedDown (int a) {
		speed = speed - a;
		return speed;
	}
    
    이렇게 정의하면
    
    속도가 speed에 저장되기때문에
    10 증가 속도 : 40
    5 감소 속도 : 35 로 출력된다.

생성자(Constructor)

=> Student() Car()

  • 기억장소 할당
  • 초기값 할당(기본자료형은 0, 참조형은 null)

  • 기본 생성자(디폴트생성자) : 생략 가능
    자바 번역할때 자동으로 기본생성자는 인식
public Student() {
	System.out.println("Student() 생성자 호출");
    
    // 초기값 임의로 할당가능
    		num=1;
			name="홍길동";
			html=60;
			java=60;
			db=60;
		}
package test;

public class Test3 {

	public static void main(String[] args) {

		Student s = new Student();
		
		System.out.println("학생번호 : " + s.num);
		System.out.println("학생이름 : " + s.name);
		System.out.println("html점수 : " + s.html);
		System.out.println("java점수 : " + s.java);
		System.out.println("db점수 : " + s.db);

		
	}
}
<출력>
Student() 생성자 호출
학생번호 : 1
학생이름 : 홍길동
html점수 : 60
java점수 : 60
db점수 : 60
  • Person 클래스 생성자
package test;

public class Person {
	// 기본생성자 => 생략가능
	public Person() {
		System.out.println("Person() 기본생성자");
		
	}
	
	
	public Person(String n) {
		System.out.println("전달받은 이름 " + n);
		// 멤버변수 name 전달받은 이름으로 초기값 할당
		name=n;
	}
	
	// 이름, 키, 몸무게 전달받아서 초기값 할당하는 생성자
	public Person(String a, float b, float c) {
		System.out.println("전달받은 이름 " + a);
		System.out.println("전달받은 키 " + b);
		System.out.println("전달받은 몸무게 " + c);
		name = a;
		height = b;
		weight = c;
	}
	
	// 멤버변수
	public String name;
	public float height;
	public float weight;
	
	// 메서드()
	public void prn() {
		System.out.println("이름 : "+ name);
		System.out.println("키 : "+ height);
		System.out.println("몸무게 : "+ weight);
	}
	
	
}
package test;

public class Test4 {

	public static void main(String[] args) {
		// Person 객체생성(생성자 호출 => 기억장소할당, 초기값 할당)
		Person p = new Person();
		
		// prn() 메서드 호출
		p.prn();
		
		System.out.println("-------------");
		
		// 이름을 전달해주는 생성자 호출해서 객체생성
		Person p2 = new Person("홍길자");
		p2.prn();
		
		System.out.println("-------------");
		
		// 이름, 키, 몸무게를 전달해주는 생성자 호출해서 객체생성
		Person p3 = new Person("홍길동", 175.7f, 70.5f);
		p3.prn();
		
		
	}

}
  • Member 클래스 생성자
package test;

public class Member {
	// 생성자 => 기억장소 할당, 초기값 할당
	// id, pass, name, age 생성할 때 초기값을 받아서 생성
    // 값을 받는 생성자가 있으면 => 기본생성자 자동으로 만들어지지 않음
    public Member(String a, String b, String c, int d) {
    	id = a;
    	pass = b;
    	name = c;
    	age = d;
    }
	
	// 멤버변수
	public String id;
	public String pass;
	public String name;
	public int age;
	
	
	// 메서드
	public void prn() {
		System.out.println("아아디 : "+ id);
		System.out.println("비밀번호 : "+ pass);
		System.out.println("이름 : "+ name);
		System.out.println("나이 : "+ age);
	}
}
package test;

public class Test5 {
	public static void main(String[] args) {
		// Memeber 객체 생성
		Member m = new Member("id", "pw1234", "홍길동", 21);
		
		// 메서드 호출
		m.prn();
	}

}
<출력>
아아디 : id
비밀번호 : pw1234
이름 : 홍길동
나이 : 21

0개의 댓글