본문 바로가기
🌈 백엔드/객체 지향

JAVA_객체지향_프로그래밍

by 개발자 알마 2023. 6. 3.
반응형

 

[1] 절차 지향 프로그램


(1) 정의

  • 시간이나 사건의 흐름에 따른 절차 

 

(2) 종류 

  • C언어

 

[2] 객체 지향 프로그램 


(1) 정의

구체적이나 추상적인 데이터를 객체화 하여 각 객체간의 협력이 생긴다 

 

(2) 종류 

  • JAVA 

 

(3) 목표

  • 객체 정의 
  • 객체 역할 기능 구현
  • 객체 간의 협력  

 

 

 

 

[3] 객체 지향 프로그래밍 구현 


객체 간의 협력을 통해 객체지향 프로그램을 구현한다 

 

(1) 객체를 구분합니다 

학생A와 학생B는 각각 버스와 지하철을 타고 학교에 갑니다.
학생A는 5000원을 가지고 있었고, 100번 버스를 타면서 1000원을 지불합니다.
학생B는 10000원을 가지고 있었고, 5호선 지하철을 타면서 1200원을 지불합니다.

>결과
각 학생별 남은돈을 출력합니다 
버스의 승객수와 수입을 출력합니다
지하철의 승객수와 수입을 출력합니다

 

(2) 학생 , 버스 , 지하철 , 서비스 클래스 별로 나누어 구현합니다. 

  • 학생 클래스
  • 멤버변수 : 이름 , 학년 , 보유금액 
  • 생성자 
  • 메서드(버스탈때 연산 , 지하철탈때연산, 결과출력) 
public class Student {
	
    //멤버변수
	String studentName;
	int grade;
	int money;
	
    //생성자
	public Student(String studentName, int money) {
		this.studentName = studentName;
		this.money = money;
	}
	
    //버스를 탈때 보유금액에서 차감되는 수행문 
	public void takeBus(Bus bus) {
		bus.take(1000);
		this.money -= 1000;
	}
    
	//지하철을 탈때 보유금액에서 차감되는 수행문 
	public void takeSubway(Subway subway) {
		subway.take(1200);
		this.money -= 1200;
	}
    
	//학생의 남은돈 결과 출력 
	public void showInfo() {
		System.out.println(studentName +"님의 남은 돈은 " + money + "원 입니다");
	}
}
  • 버스 클래스
  • 멤버변수 : 버스번호,승객수, 수입  
  • 생성자
  • 메서드( 버스탈때 수입과 승객수 카운트, 결과출력) 
public class Bus {
	
    //멤버변수
	int busNumber;
	int passengerCount;
	int money;
	
    //생성자 
	public Bus(int busNumber) {
		this.busNumber = busNumber;
	}
	
    //승객 발생시 승객수 카운트 + 수입 계산 
	public void take(int money) { 
		this.money += money;
		passengerCount++;
	}
	
    // 결과 출력 
	public void showBusInfo() {
		System.out.println(busNumber + "번 버스의 승객은 " + passengerCount + "명 이고, 수입은 " + money + "원 입니다");
	}
}
  • 지하철 클래스
  • 멤버변수 : 지하철노선,승객수, 수입  
  • 생성자
  • 메서드( 지하철탈때 수입과 승객수 카운트, 결과출력) 
public class Subway {
	
    //멤버변수
	int lineNumber;
	int passengerCount;
	int money;
	
    //생성자
	public Subway(int lineNumber) {
		this.lineNumber = lineNumber;
	}
	
    // 지하철 탈때 승객수 카운트 + 수입 카운트
	public void take(int money) {
		this.money += money;
		passengerCount++;
	}
	
    //결과 출력 
	public void showSubwayInfo() {
		System.out.println(lineNumber + "번 지하철의 승객은 " + passengerCount + "명 이고, 수입은 " + money + "원 입니다");
	}
}
  • 서비스 클래스 
  • 인스턴스 생성 (학생, 버스, 지하철)
  • 연산 수행 (학생-버스 / 학생-지하철)
  • 결과출력 (학생,버스, 지하철) 
public class Service {

	public static void main(String[] args) {
    
    	//학생 인스턴스
		Student studentA = new Student("학생A", 5000);
		Student studentB = new Student("학생B", 10000);
		
        // 버스 인스턴스 
		Bus bus100 = new Bus(100);
		
        // 지하철 인스턴스 
		Subway subway5Line = new Subway(5);
		
		//학생 - 버스 클래스
		studentA.takeBus(bus100);
        
        // 학생 - 지하철 클래스 수행
		studentB.takeSubway(subwayGreen);
		
        // 학생의 결과 출력 수행
		studentA.showInfo();
		studentB.showInfo();
		
        // 버스의 결과출력 
		bus100.showBusInfo();
			
            
        //지하철의 결과출력    
		subway5Line.showSubwayInfo();
	}

}
반응형

댓글