Part05 - OOP_begin

uglyduck.dev·2020년 9월 27일
0
post-thumbnail

Book

package com.mywork.ex;

/*
 * 클래스 (class)
 *   1. 객체지향언어에서 "객체"를 만드는 도구이다.
 *   2. "객체"를 만드는 설계도이다.
 *   3. "객체(object)", "인스턴스(instance)"를 만드는 설계도이다.
 *   4. 구성
 *   	 변수 => 필드(Field)
 *   	 함수 => 메소드(Method)
 */

public class Book {
	
	// Field
	String title;
	String writer;
	int price;
	boolean isBestSeller;
	
	// Method
	void info() {
		System.out.println("제목 : " + title);
		System.out.println("저자 : " + writer);
		System.out.println("책의 가격 : " + price);
		System.out.println(isBestSeller ? "베스트셀러" : "일반서적");
	}
}

BookMain

package com.mywork.ex;

/*
 * 객체 생성(인스턴스 생성)
 *  1. 정의된 클래스를 이용하여 "객체"를 생성한다.
 *  2. 생성 방법
 *  	클래스명 객체명 = new 클래스명();
 *  	클래스명 인스턴스명 = new 클래스명();
 *  3. 객체(인스턴스) 사용 방법
 *  	객체명.필드명
 *  	객체명.메소드명()
 */

/*
 * 메인 클래스
 *  1. main 메소드를 가지고 있는 클래스이다.
 *  2. 프로그램이 시작되는 클래스이다.
 *  3. 프로그램의 이름이 되는 클래스이다.
 */

public class BookMain {

	public static void main(String[] args) {
		// 1. Book 객체(인스턴스) 생성
		Book myBook = new Book();
		
		// 2. 생성된 객체(myBook) 활용
		myBook.title = "자바의 정석";
		myBook.writer = "남궁성";
		myBook.price = 35000;
		myBook.isBestSeller = true;
		
		myBook.info();
	}
}

PersonMain

package com.mywork.ex;

/*
 * 클래스가 2개 이상인 경우
 * public 키워드는 파일명과 일치하는 클래스에만 명시 
 */

class Person{
	
	// Field
	char gender;
	int age;
	double height;
	String name;
	
	// Method
	void info() {
		System.out.println("성별 : " + gender);
		System.out.println("나이 : " + age);
		System.out.println("신장 : " + height);
		System.out.println("이름 : " + name);
	}
}
public class PersonMain {
	
	public static void main(String[] args) {
		Person woman = new Person();
		Person man = new Person();
		
		woman.gender = '여';
		woman.age = 20;
		woman.height = 168.5;
		woman.name = "alice";
		
		man.gender = '남';
		man.age = 21;
		man.height = 178.5;
		man.name = "james";
		
		woman.info();
		man.info();
		
	}
}

StudentMain

package com.mywork.ex;
import java.util.Scanner;

class Student{
	
	String name;
	String dept;
	String score1;
	String score2;
	double average;
	boolean isPass;
	
	void input(Scanner scanner) {
		System.out.print("이름 >> ");
		name = scanner.nextLine();
		System.out.print("학과 >> ");
		dept = scanner.nextLine();
		System.out.print("점수1 >> ");
		score1 = scanner.next();
		System.out.print("점수2 >> ");
		score2 = scanner.next();
		
		//계산
		average = (Double.parseDouble(score1) + Double.parseDouble(score2)) / 2;
		isPass = average >= 80 ? true : false;
	}
	void output() {
		System.out.println("이름 : " + name);
		System.out.println("학과 : " + dept);
		System.out.println("점수1 : " + score1);
		System.out.println("점수2 : " + score2);
		System.out.println("평균 : " + average);
		System.out.println(isPass ? "합격" : "불합격");
	}
}

public class StudentMain {
	public static void main(String[] args) {
		Student student = new Student();
		student.input(new Scanner(System.in));
		student.output();
	}
}
profile
시행착오, 문제해결 그 어디 즈음에.

0개의 댓글