문제
이름과 부서와 연봉, 수당을 입력받아서 연산하는 프로그램을 작성하세요.

1. 상속관계 이용 2. 생성자이용 3. 메소드 이용

package test;

import java.util.Scanner;

/*
문제
이름과 부서와 연봉, 수당을 입력받아서 연산하는 프로그램을 작성하세요
1. 상속관계 이용 2. 생성자이용 3. 메소드 이용
*/

class Department extends money { // 관리
   static int salary; // 월급을 의미함

   public static int Development(int salary) { // 개발부
      salary = 2800000;
      System.out.println("개발부서 월급은" + salary + "입니다");
      return salary;
   }

   public static int sales(int salary) { // 영업
      salary = 2700000;
      System.out.println("영업 월급은" + salary + "입니다");
      return salary;
   }

   public static int marketing(int salary) { // 마케팅부
      salary = 2600000;
      System.out.println("마케팅부 월급은" + salary + "입니다");
      return salary;
   }

   public static int management(int salary) { // 경영부
      salary = 2500000;
      System.out.println("경영부 월급은" + salary + "입니다");
      return salary;

   }

}

class money {
   static int salary;
   static int hour;
   static Scanner scc = new Scanner(System.in);
   static int money = 10000;
   static int result;

   public static int Allowance() { // 수당
      System.out.println("추가 근무시간을 입력하세요");
      hour = scc.nextInt();
      result = hour * money;

      return result;
   }

}

public class annualsalaryprogram extends Department {
   static String name;
   static int Department;
   static int finalpay;

   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);


      do {
         System.out.println("이름을 입력해주세요 종료를 원하면 exit를  입력하세요");
         name = sc.next(); // exit를 누르면 프로그램 종료하는 방법이 궁금함
         if (name.equals("exit")) {
            System.out.println("프로그램을 종료합니다.");
            System.exit(0);
         } else {

            annualsalaryprogram ac = new annualsalaryprogram();

            result = ac.result; // 수당을 변수 result에 넣어준다

            System.out.println("부서번호를 입력해주세요");
            System.out.println("1. 개발부, 2.영업부, 3. 마케팅부  4.경영부");
            Department = sc.nextInt();
            switch (Department) {
            case 1:
               salary = Development(salary);
               Allowance();

               finalpay = salary + result;
               System.out.println("수당은 :" + result + "이고" + "수당을 포함 최종 월급은" + finalpay);
               break;
            case 2:
               salary = sales(salary);
               Allowance();
               finalpay = salary + result;
               System.out.println("수당은 :" + result + "이고" + "수당을 포함 최종 월급은" + finalpay);
               break;
            case 3:
               salary = marketing(salary);
               Allowance();
               finalpay = salary + result;
               System.out.println("수당은 :" + result + "이고" + "수당을 포함 최종 월급은" + finalpay);
               break;
            case 4:
               salary = management(salary);
               Allowance();
               finalpay = salary + result;
               System.out.println("수당은 :" + result + "이고" + "수당을 포함 최종 월급은" + finalpay);
               break;
            }
            System.out.println();
         }
      } while (true);

   }

}

'코딩이야기 > JAVA' 카테고리의 다른 글

[JAVA]제네릭2  (1) 2020.04.28
[JAVA] 제네릭  (2) 2020.04.28
[JAVA] 상속과 인터페이스  (0) 2020.04.22
[JAVA] 인터페이스  (0) 2020.04.22
[JAVA] 상속  (0) 2020.04.22

가감승제산을 상속을 이용하여 결과를 출력한다.

  1. 가산 : adder() => class(Adder)

  2. 감산 : subtract() => class(Subtract)

  3. 승산 : milti()   =>class(Multiply)

  4. 제산(몫) : divide1()  =>interface(Divide1)

  5. 제산(나머지) : divide2() =>interface(Divide2)

 

 

package Inher;

import java.util.Scanner;

/*
 * 가감승제산을 하여 결과를 출력하세요.
 * 	1.가산 : Adder()
 * 	2.뺄셈 :
 */
public class InherSample4_Operation extends Adder implements Divide1,Divide2{

	@Override
	public void divide1() {

		Scanner sc = new Scanner(System.in);

		System.out.println("나눗셈할 데이터를 입력해주세요");
		int x4 = sc.nextInt();
		System.out.println("나눗셈할 데이터를 입력해주세요");
		int y4 = sc.nextInt();
		
		int sum = x4 /y4;
		System.out.println("나눗셈(몫)을 구하는: "+sum);
		
	}
	
	@Override //오버라이딩이 있어야 추상메소드
	public void divide2() {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);

		System.out.println("나머지 구할 데이터를 입력해주세요");
		int x5 = sc.nextInt();
		System.out.println("나머지 구할 데이터를 입력해주세요");
		int y5 = sc.nextInt();
		
		int sum = x5 %y5;
		System.out.println("나눗셈(나머지)을 구하는: "+sum);
	}
	
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner sc = new Scanner(System.in);
		
		System.out.println("덧셈할 데이터를 입력해주세요");
		int x = sc.nextInt();
		System.out.println("덧셈할 데이터를 입력해주세요");
		int y = sc.nextInt();
		
		int sum = adder(x, y);
		
		System.out.println("덧셈의 합계 : "+sum);
		//=========================================================
		System.out.println("뺄셈할 데이터를 입력해주세요");
		int x2 = sc.nextInt();
		System.out.println("뺄셈할 데이터를 입력해주세요");
		int y2 = sc.nextInt();
		suber(x2, y2);
		
		//=========================================================
		int result=multi(); //곱하기
		
		System.out.println("곱셈의 결과는 : "+result);
		
		//=========================================================
		InherSample4_Operation is4 = new InherSample4_Operation();
		
		is4.divide1();
		

		
		is4.divide2();
		
	}



	

}

 

 

package Inher;
/*
 * 전달인자가 존재하고 반환값이 있습니다.
 */
public class Adder extends Subtract{

	public static int adder(int x, int y){
		int sum =0;
		sum = x+y;
		return sum;
	}
}

 

package Inher;
/*
 * 전달인자값이 존재하고 리턴값(반환값)이 없다.
 */
public class Subtract extends Multiply{
	public static void suber(int x, int y){
		int sum =0;
		sum = x-y;
		System.out.println("뺄셈은 : "+ sum);
	}
}

 

package Inher;

import java.util.Scanner;

public class Multiply {
	public static int multi() {
		int sum = 0;

		Scanner sc = new Scanner(System.in);

		System.out.println("곱셈할 데이터를 입력해주세요");
		int x3 = sc.nextInt();
		System.out.println("곱셈할 데이터를 입력해주세요");
		int y3 = sc.nextInt();

		sum = x3 * y3;
		 return sum;
	}
}

 

package Inher;


public interface Divide1 {
	public abstract void divide1();
	
}

 

package Inher;

public interface Divide2 {
	public abstract void divide2();
}

'코딩이야기 > JAVA' 카테고리의 다른 글

[JAVA] 제네릭  (2) 2020.04.28
[Java] 메소드와 상속관계를 이용한 문제  (1) 2020.04.24
[JAVA] 인터페이스  (0) 2020.04.22
[JAVA] 상속  (0) 2020.04.22
[JAVA] printf  (0) 2020.04.21

인터페이스란? (=interface)
  사용될 것을 미리 전제로 하여 미리 만들어 놓은 추상 메소드의 집합.

  - 현재는 사용하지 않지만, 언젠가 미래에 사용되어질 것이라고 생각하고 밀 만들어 놓아야 합니다.
  - 하나 이상의 추상 메소드가 반드시 존재해야 합니다.
  - 그러면, 그 클래스는 반드시 추상 클래스 이거나 아니면 인터페이스 이여야 한다.

  - 그리고, 일반적인 문자열 처리도 가능합니다.

  - 접근제한자는 public 으로 시작하고, abstract라는 키워드는 생략이 가능합니다.

  - 그래서, 추상메소드는 설계는 하지만, 구현은 하지 않고, 상속을 이용하여 추상메소드 오버라이딩(=methodOverriding) 해서 사용합니다.

  - @Overring

 

 

package Inher;

import java.util.Scanner;

public class InherSample3_interface implements People3_Interface{

	@Override
	public  void personInformation() {
		// TODO Auto-generated method stub
		
		String name,jumin, stdNo;
		Scanner sc = new Scanner(System.in);
		
		System.out.println("이름을 입력해주세요");
		name = sc.next();
		System.out.println("주민번호를 입력해주세요");
		jumin = sc.next();
		System.out.println("학번을 입력해주세요");
		stdNo = sc.next();
		
		System.out.println(name);
		System.out.println(jumin);
		System.out.println(stdNo);		
		
	}
	public static void main(String[] args) {
		InherSample3_interface is3 =new InherSample3_interface();
		is3.personInformation();
		
		
	}

	

}
package Inher;

public interface People3_Interface {
	
	public abstract void personInformation(); //abstract 생략이 가능하다. 이것을 추상메소드라 부른다.
												// 설계
	
	
	
}

 

 

 

 

'코딩이야기 > JAVA' 카테고리의 다른 글

[Java] 메소드와 상속관계를 이용한 문제  (1) 2020.04.24
[JAVA] 상속과 인터페이스  (0) 2020.04.22
[JAVA] 상속  (0) 2020.04.22
[JAVA] printf  (0) 2020.04.21
[JAVA] 랜덤 클래스  (0) 2020.04.20

 1. 7개의 데이터를 입력받아서 가장 큰 값과 가장 작은 값을 구하여 출력하세요.
  2. 상속을 이용하여, ArraySample8_arraySub2 클래스에서도 최대값과 최소값을 구하여 출력해보자.
  상속(Inheritance)란?
   기존에 작성된 클래스(부모클래스) 를 바탕으로 자식 클래스에 기능과 속성을 물려주는 것.
   속성(Attribute) : 클래스에서 클래스 변수에 속하는것 들. 
   기능(method) : 클래스에서 클래스 메소드에 속하는 것듯.
    상속은 항상 오른쪽에서 왼쪽으로 상속을 준다.
   1) class A extends B {...}
    같은 클래스들 끼리의 상속 관계일 때
   2) interface A extends B {...}
   같은 인터페이스들 끼리의 상속 관계일 때
   3) class A implements B, C, D ... {...}
   클래스들과 인터페이스와의 상속 관계일 때
   4) class A extends B implements C, D, E, ... {...}
   같은 클래스들 끼리와 인터페이스들의 상속관계일 때
   이상 4가지 종류 중에서 문제의 요구사항에 맞는 것으로 골라서 사용합니다.  
  

 

생성자는 상속이 절대로 안된다. 그러므로 extends 해서 사용할 수 없다.

'코딩이야기 > JAVA' 카테고리의 다른 글

[JAVA] 상속과 인터페이스  (0) 2020.04.22
[JAVA] 인터페이스  (0) 2020.04.22
[JAVA] printf  (0) 2020.04.21
[JAVA] 랜덤 클래스  (0) 2020.04.20
[JAVA] 배열의 기초!  (1) 2020.04.17

printf();

decimal point : 십진수(숫자)

System.out.printf("%5d");

%c : 영문자(대/소) 한글자 출력 

%s : 문자열 출력할때

%f : 부동소수점 출력, 단정도 실수형

%lf : 배정도 실수형 출력

%e : 지수승 출력

package test;

public class test0421 {
	public static void main(String [] args){
		char a = 's';
		String b = "abcdefg";
		int f =12300;
		float c = 34.56789f;
		double d = 1231465.565165156;
		System.out.printf("%c \n", a);
		System.out.printf("%s \n", b);
		System.out.printf("%d \n", f);
		System.out.printf("%f \n", c);
		System.out.printf("%e \n", d);
		
	}

'코딩이야기 > JAVA' 카테고리의 다른 글

[JAVA] 인터페이스  (0) 2020.04.22
[JAVA] 상속  (0) 2020.04.22
[JAVA] 랜덤 클래스  (0) 2020.04.20
[JAVA] 배열의 기초!  (1) 2020.04.17
[JAVA]대소문자 변환  (0) 2020.04.08

랜덤 클래스(Random)
  난수 발생
  예) 로또 복권 추첨, 이벤트 추첨
  표기법

 1. 숫자 : 0~ 해당 숫자 -1 까지 난수 발생

 2. 숫자 +1  : 1 ~ 숫자까지 난수 발생

 

 

문제] 로또 복권 추첨 : 1~ 45 숫자중에서 6개 숫자를 난수로 발생

   2. 숫자 +1  : 1 ~ 숫자까지 난수 발생   1~45 까지의 난수 발생 

 

난수 발생

Random rand = new Random();

 

 

package Array;

import java.util.*;

/*
 랜덤 클래스(Random) 
 난수 발생 
 예) 로또 복권 추첨, 이벤트 추첨 
 표기법
 1. 숫자 : 0~ 해당 숫자 -1 까지 난수 발생
 2. 숫자 +1  : 1 ~ 숫자까지 난수 발생

 문제] 로또 복권 추첨 : 1~ 45 숫자중에서 6개 숫자를 난수로 발생
 2. 숫자 +1  : 1 ~ 숫자까지 난수 발생   1~45 까지의 난수 발생 

 */
public class ArraySample9_Random {

	public static void main(String[] args) {
		Random rand = new Random();
		Scanner sc = new Scanner(System.in);
		System.out.println("랜던값을 몇개 만드실건가요?");
		int count = sc.nextInt();
		
		int selectNumber[] = new int[count];
	

		for (int i = 0; i < selectNumber.length; i++) {
			selectNumber[i] = rand.nextInt(45) + 1;
			
			System.out.println(selectNumber[i] + "");
		}

	}

}

'코딩이야기 > JAVA' 카테고리의 다른 글

[JAVA] 상속  (0) 2020.04.22
[JAVA] printf  (0) 2020.04.21
[JAVA] 배열의 기초!  (1) 2020.04.17
[JAVA]대소문자 변환  (0) 2020.04.08
[JAVA] 생성자 개념  (0) 2020.04.08

+ Recent posts