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