Full Stack 교육 회고록

8/19 java- 클래스와 객체

순두부 호랑이 2022. 8. 19. 17:51
728x90
SMALL
package Ex02;

public class PiggyBank {
	//저금통의 기능을 가질 수 있느 설계도 만들기!
	
	//1. 필드 -> 금액을 관리할 수 있는 money
	int money; //1500
	
	//2. 메소드 -> 리턴타입이 없는 형태로 기본구조만 생성하기!
	// static 키워드 사용x
	//- 돈을 넣을 수 있는 기능 deposit()
	public void deposit(int money) {
		//적금된 금액을 유지시켜 기억할수 있도록 로직 만들기!
		//this -> 클래스(설계도)가 자체적으로 가지고 있는 변수를 가르키는 키워드!
		this.money += money;
	}
	
	//- 돈을 인출할 수 있는 기능 withdraw()
	public void withdraw(int money) {
		this.money -= money;
	}
	//- 잔액을 확인할 수 있는 기능 showMoney()
	public void showMoney() {
		System.out.println("현재 잔액 : "+ this.money);
	}

		
	}
package Ex02;

public class PiggyMain {

	public static void main(String[] args) {
		
		//설계도에 의한 piggy 객체 생성
		PiggyBank piggy = new PiggyBank();
		
		//piggy 객체의 money 속성에 1500원 적금하기
		piggy.deposit(1500);
		//piggy 객체의 money 속성에 700원 적금
		piggy.deposit(700);
		
		//현재까지의 입금액 확인하기
		piggy.showMoney();
		
		//
		piggy.withdraw(500);
		piggy.showMoney();
		
		PiggyBank piggy2 = new PiggyBank();
		piggy2.deposit(1000);
		
		System.out.println();
		System.out.print("piggy 금액 : ");
		piggy.showMoney();
		System.out.println("piggy2 금액 :");
		piggy2.showMoney();
			
		

	}
	

}

[생성자]

생성자의 특징

- 생성자는 메소드이다

- 생성자 이름은 클래스 이름과 동일

- 생성자는 리턴 타입을 지정할 수 없다.

- 생성자는 new를 통해 객체를 생성할 때만 호출됨

- 생성자는 하나 이상 선언되어야 함

    - 개발자가 생성자를 정의하지 않으면 자동으로 기본 생성자가 정의됨

       - 컴파일러에 의해 자동 생성

       - 기본 생성자를 디폴트 생성자(default constructor) 라고도 함

       - 만약 default 생성자만 존재하고 default에 아무런 기능이 없을 경우 생략이 가능함

package Ex03;

public class Student {
	// 학생정보를 관리하기 위한 설계도

	//학생정보를 저장하기 위한 필드
	String name;
	String number;
	int age;
	int scoreJava;
	int scoreWeb;
	int scoreAndroid;
	
	//기본 생성자 메소드 -> 생략되어 있다.
	public Student() {
		
	}
	
	//생성자 메소드 오버로딩(중복정의)
	public Student(String name, String number, int age, int scoreJava, int scoreWeb, int scoreAndroid) {
		this.name=name;
		this.number=number;
		this.age=age;
		this.scoreJava=scoreJava;
		this.scoreWeb=scoreWeb;
		this.scoreAndroid=scoreAndroid;
	}
	
	
	//학생정보를 보여주기 위한 메소드
	public void show() {
		System.out.println(name+"님 안녕하세요.");
		System.out.println("["+ number + ","+ age + "살 ]");
		System.out.println(name+"님의 Java점수는"+ scoreJava +"점 입니다.");
		System.out.println(name+"님의 Web점수는"+ scoreWeb +"점 입니다.");
		System.out.println(name+"님의 Android점수는"+ scoreAndroid +"점 입니다.");
		System.out.println("====================================");
		
	}

}
package Ex03;

public class StudentMain {

	public static void main(String[] args) {
		
		Student student1 = new Student("홍길동", "20150678", 22, 50, 89,77);
		
//		student1.name = "홍길동";
//		student1.number = "20150675";
//		student1.age = 22;
//		student1.scoreJava = 50;
//		student1.scoreWeb = 89;
//		student1.scoreAndroid = 77;
		
		Student student2 = new Student();
		
		student2.name = "김영희";
		student2.number = "20090541";
		student2.age = 29;
		student2.scoreJava = 90;
		student2.scoreWeb = 25;
		student2.scoreAndroid = 30;
		
		student1.show();
		student2.show();
		
		
		

	}

}
* 절차지향/객체지향/함수형 프로그래밍 비교하는 주제 (08.18)
- 이론위주, 적절한 예시 필수!

*클래스/객체/인스턴스(08.18)
-이론위주,적절한 예시 필수!

*상속(8.24)
-이론+코드 예제

*추상클래스,인터페이스(8.26)
- 이론 + 코드 예제

* 디자인패턴(MVC 패턴)(8.23)
- 이론위주+코드 예제

*자료구조(선형구조와 비선형구조)(08.22~)
-이론위주

8.31 2시간(주제뽑고 발표준비) 2시간 발표(5~15)
package Ex04;

public class Person {
	
	String name;
	int age;
	
	public void person(String name, int age) {
		this.name= name;
		this.age= age;
	}
	public int getAge()
	
	public void show() {
		System.out.println("Person의 %d" + "이름 : "+ name + ", 나이 : "+ age);
	}
	

}
package Ex04;

public class PersonMain {

	public static void main(String[] args) {

		Person person1 = new Person();

		person1.name = "홍길동";
		person1.age = 25;

		Person person2 = new Person();

		person2.name = "김영희";
		person2.age = 27;

		person1.show();
		person2.show();

	}

}
728x90
LIST