1.Books_ex

 

1. DateClass

 

package com.ohj.books;

public class DateClass {//InfoClass 객체들 저장
	InfoClass[] ic= new InfoClass[6];// 책 정보들 저장

	public DateClass (){

		ic[0]=new InfoClass("이것이 자바자",30000,"신용권","한빛미디어");//ic에 책 정보들 저장
		//System.out.println(ic[0].press);//데이타클래스에서 잘 입력되었는지 확인1번쨰//확인코드
        
		ic[1] = new InfoClass("파이선",25000,"홍길동","길벗");
		//System.out.println(ic[1].press);////확인코드
        
		ic[2] = new InfoClass("정보처리기사",35000,"기사","길벗");
		ic[3] = new InfoClass("HTML",15000,"꾸미기","한빛출판사");
		ic[4] = new InfoClass("JSP&Serlet",23000,"열혈","길벗출판사");
		ic[5] = new InfoClass("오라클",21000,"oracle","A길벗출판사");

		//System.out.println("DataClass 생성자 작업 완료");//확인코드

	}
}

 

2. InfoClass

package com.ohj.books;

public class InfoClass {//책제목,가격,저자,출판사 정보 4가지 정보

	String title; //제목
	int price; //가격
	String outhor; //저자
	String press; //출판사

	public InfoClass(){//기본 생성자
	}

	//외부로부터 값을 전달받는 생성자
	//("이것이 자바자"(String),30000(int),"신용권"(String),"한빛미디어"(String));//ic에 책 정보들 저장

		public InfoClass(String t,int p, String a,String pr){
			title=t;
			price=p;
			outhor=a;
			press=pr;
			//System.out.println("InfoClass 생성자 작업 완료");//확인코드
		}
}//InfoClass End

3.MainClass

package com.ohj.books;

public class MainClass {
	public static void main(String[] args) {

		DateClass dc = new DateClass();//데이타클래스에서 잘 입력되었는지 확인2번째

		//dc는 두 책의 정보를 보유(ic배열)
		//int sum = dc.ic[0].price+dc.ic[1].price;//두 책의 가격을 합하기

		int sum=0;//전체 책 값구하기
		for(int i=0;i<dc.ic.length;i++){
			sum= sum+dc.ic[i].price;
		}

		System.out.println(sum);

		for(int i=0; i<dc.ic.length;i++){// 전체 도서 정보중에서 출판사가 길벗인 책의 제목을 출력
			if(dc.ic[i].press.equals("길벗")){//길벗이라는 글자가 정확히 포함된 자료만 가지고 온다.
				System.out.println(dc.ic[i].title);
			}
		}

		for(int i=0; i<dc.ic.length;i++){// 전체 도서 정보중에서 출판사가 길벗인 책의 제목을 출력
			if(dc.ic[i].press.contains("길벗")){//길벗이라는 글자를 포함하는 자료를 가지고 온다.(contains)
				System.out.println(dc.ic[i].title);
			}
		}
	}
}

2.Class_ex

1. TestClass

package com.ohj.classes;
public class TestClass {
	// 사람의 정보를 넣어주는 클래스
	// 전체 데이터를 보관하는 배열
	InfoClass[] ic = new InfoClass[10];// 10개의 방을 만든다.
	
	public TestClass() {
	ic[0]=new InfoClass( "A" , 28 , "KR" , 1 , "정규");
	ic[1]=new InfoClass( "B" , 31 , "JP" , 3 , "비정규");
	ic[2]=new InfoClass( "C" , 28 , "JP" , 1 , "정규");
	ic[3]=new InfoClass( "D" , 29 , "KR" , 2 , "정규");
	ic[4]=new InfoClass( "E" , 28 , "US" , 2 , "비정규");
	ic[5]=new InfoClass( "F" , 32 , "US" , 5 , "정규");
	ic[6]=new InfoClass( "G" , 28 , "KR" , 1 , "비정규");
	ic[7]=new InfoClass( "H" , 29 , "EU" , 2 , "비정규");
	ic[8]=new InfoClass( "I" , 33 , "EU" , 6 , "정규");
	ic[9]=new InfoClass( "J" , 28 , "KR" , 1 , "비정규");

	// InfoClass ic2 = new InfoClass( "A",28, "KR", 1, "정규");
	// 생성자 내부에서 불러옴(info에서 가져옴)salaryOperator();
	} 

///////////////////////밖에 선언 하기!!!!!!!!///////////////////////////////////////////////////////////

	public int[] total() {
	// 전 사원의 총 수입 배열(총 수입 = 총 연봉+총 생활비)
	int[] totalArray = new int[10];
	for (int i = 0; i < ic.length; i++) {// 전사원
		// 근무 (재직)기간 내의 총 생활비 변수(월 생활비*12*재직년수)
		int costOfliving = 0;
		// 근무 (재직)기간 내의 총 연봉 변수(연봉*재직년수)

		int total = 0;
		total = ic[i].salary * ic[i].years;

		if (ic[i].local.equals("US")) {
			costOfliving = 70 * 12 * ic[i].years;
		}
		if (ic[i].local.equals("JP")) {
			costOfliving = 50 * 12 * ic[i].years;
		}
		if (ic[i].local.equals("EU")) {
			costOfliving = 100 * 12 * ic[i].years;
		}
	
		totalArray[i] = total + costOfliving;
		}//for end
	
	return totalArray;
	
		}
}// TestClass END

2.InfoClass

package com.ohj.classes;

public class InfoClass {

	// 사람의 정보를 보관하는 클래스
	String name; 
	int age; 
	int salary;
	String local;
	int years;
	String worker;
	
	// 동일한 이름의 생성자, 메서드를 만들어 사용라는 기법
	//=> '오버로딩'라 부른다.
	// *주의 할 사항 : 메서드의 매개변수 타입이 달라야 하고, 또는 매개변수의 갯수가 달라야한다.

	public InfoClass(){//기본 생성자
	}

	//오버로딩 생성자

	// "A",28 , , "KR" , 1 , "정규"

	public InfoClass(String n, int a, String lo, int y, String j){//값이 들어 오는 순서대로 만들어줘야함. 정보내용을 입력.
		name = n;
		age = a;
		local=lo;
		years = y;
		worker = j;//각각의 변수에 대입 될 수 있도록 등록한다.
		salaryOperator();//연봉 계산하는 메소드 호출
	}

	//연봉 계산하는 메서드
	public void salaryOperator(){ 
		if(worker.equals("정규")){
			salary=250*13;//정규직일 경우
		}else{
			salary =200*13; //비정규직일 경우
		}
	}
}

3.MainClass

package com.ohj.classes;

public class MainClass {
	public static void main(String[] args) {
		//각 사람이 회사에 근무하면서 받을 수 있는 총 수입을 계산
		//총 수입 총연봉=연봉*재직연수/총 생활비 = 월*12*재직연수
		TestClass tc = new TestClass();//객체 선언

		int[] total = tc.total();
	
		for(int i =0; i<total.length; i++){
			System.out.println(tc.ic[i].name+"사원의 총수입:"+total[i]);
		}
	}
}

3.emp

1.EMPClass

package com.ohj.emp;

public class EMPClass { // 클래스 선언
	int[] age = { 27, 34, 28, 26, 41, 28, 42, 29, 29, 32 };
	char[] gender = { 'f', 'm', 'f', 'm', 'm', 'f', 'm', 'm', 'f', 'm' };
	int[] pay = { 460, 200, 250, 300, 300, 200, 350, 200, 400, 440 };
	String[] code = { "JP", "FR", "JP", "US", "CN", "DE", "KR", "JP", "DE", "KR" };
	/**1. 나이,성별, 급여, 나라 별 값을 배열로 선언해준다. ***/
	
	public EMPClass() { // 기본 생성자 : 생성자 이름은 클래스 이름과 같아야한다. void 같은 것을 붙이면 안된다.
		System.out.println("EMPClass 생성자 내부");
		}

// 생성자 안에 들어가면 안된다.

	public void Sum(int[] a, String str) {// 2. 1번 : 배열 형태의 값과 스트링 형태의 값을 매개변수로 받는다.
		int s = 0;
		for (int i = 0; i < a.length; i++) {
			s = s + a[i];
		}
		System.out.println(str + "의 합" + s);
	}// 섬 메소드 끝 

	public int sum_return(int[] a) {// 2번
		int s = 0;
		for (int i = 0; i < a.length; i++) {
				s = s + a[i];
			}

		return s;

	}

	public int[] test() {// 3번
		int a = 10;
		int b = 20;
		int[] r = { a, b };
		return r;
	}

	public ResultDate test2() {// 4번 test2 를 불러오려면 ResultDate test2로 불러줘야한다. 
		int a = 10;
		float b = 20;
		String s = "ABC";
		
		ResultDate rd = new ResultDate();// 클래스를 만들어줘서 가져옴

		rd.r1 = a;
		rd.r2 = b;
		rd.r3 = s;

		return rd;

	}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

	public void sum1() { // 매서드 1번 만들어지지만 실행은 되지 않는 것// 누군가 사용하고 싶다고 호출 해줘야 함
		int n = 10 + 20;
		System.out.println("합:" + n);
	}

	public int sum2() { // 매서드 2번
		int n = 10 + 20;
		return n;
	}

	public void sum3(int a, int b){ //매서드 3번
		int n = a+b;
		System.out.println("전달 받은 값의 합 :"+ n);
	}

	public double div(float f1,int a){ // 매서드 4번
		double d = f1/a;
		return d;
		}
}
// 문제 1 월급이 400 이상인 사람의 인원수
// 문제 2 성별이 여자인 사람들의 월급 합
// 문제 3 성별이 여자인 사람들의 월급 합과 평균연령
// 문제 4 독일에 근무하는 사원들의 평균 급여

2.ResultClass

package com.ohj.emp;

public class ResultDate { //3. 결과값을 받을 수 있는 변수들 선

	int r1;// 4번
	float r2;
	String r3;

	public ResultDate() {
		}

}

 

3.EMPClassMain

package com.ohj.emp;

public class EMPClassMain {
	
	public static void main (String[] args){
		EMPClass emp = new EMPClass();//타입은 이름과 같다.
		
		emp.Sum(emp.age,"나이"); //1번 : 섬 메소드 호출(매개변수값인 이엠피 에이지와 스트링값을 넣어준다.)
		emp.Sum(emp.pay,"급여");
		
		System.out.println("나이 합:"+emp.sum_return(emp.age));//2번 
		System.out.println("급여 합:"+emp.sum_return(emp.pay));

		int[] r3 = emp.test();//3번
		System.out.println(r3[0]+" "+r3[1]);

		ResultDate result = emp.test2();//4번

		System.out.println(result.r1);
		System.out.println(result.r2);
		System.out.println(result.r3);

		System.out.println(" ");
		emp.sum1();//매서드 1번 반환하지 않기 때문에(return) 변수에 결과값을 대입하여도 반환되지 않아 오류가 뜬다.
 
		int r = emp.sum2();//매서드 2번

		System.out.println(r);// r값에 입력시키고 r r값을 불러온다.
		System.out.println("결과를 바로 출력하는 방법 : "+ emp.sum2());//결과값을 바로 출력만 하고 싶을 때는 이 방법을 쓰도록 한다.

		emp.sum3(12, 13);// 매서드 3번 이 것을 이용하려면 어떤 값을 넣어줘야한다. 

		double r2 = emp.div(12.4f, 55); // 매서드 4번 

		System.out.println(r2);
		System.out.println(r+r2);// 결과값을 나중에 쓰는 예시 r과 r2의 결과값을 나중에 불러왔다.

	}
}

/////////////////////////////////////////////////////////////////////////////////////////////////////// 
/*
 * //1번 문제 월급이 400 이상인 인원 수
 * //월급 : emp의 pay 배열을 이용
 * //400 이상 : emp.pay[0]>= 400
 * //사람의 인원 수 : int count = 0;
 * //pay배열의 전체 데이터 검색 : for(;;){}
 * //400과 비교 : if(){}
 * 
 * int count = 0;//선언
 * for(int a = 0;a<emp.pay.length;a++){//int를 선언 해주고; pay 배열의 최대값보다 작다.(큰 금액)
 * 		if(emp.pay[a] >= 400){
 * 		count=count+1;//count++; 동일
 * 		}
 * }
 * 
 * System.out.println("월급이 400 이상인 사람의 인원 수 :"+count);
 * 
 * //2번 문제 성별이 여자인 사람의 월급의 합
 * // gender배열 
 * // 성별이 여자 : emp.gender[0]=='f' char 이기 때문에
 * //월급 pay배열
 * //합 : int sum = 0;
 * //데이터 검색 : for(;;){}
 * //비교 : if(){}
 * 
 * int count2 = 0;
 * for(int b = 0; b<emp.gender.length;b++){ //배열을 돌아서 확인해라
 * 		if(emp.gender[b]=='f'){//만약 f면
 * 			count2 = count2+emp.pay[b];//그 수를 더하라
 * 			}
 * 		}
 * 
 * System.out.println("성별이 여자인 월급의 합 :"+count2);
 * 
 * // for(){} 내에서 선언 된 변수는 for문이 종료 되면 자동 소멸
 * //따라서 for문 밖에서는 사용이 불가.
 * // 특정 범위(지역)에서만 사용 되는 변수:지역변수라 호칭;
 * ex)int a = 0, int b = 0; for문 내에서만 사용하는 변수를 지정해주는 것이 좋다.
 * 
 * // 3번 문제 성별이 남자인 사람들의 월급 합과 평균연령
 * int sum2 = 0;
 * int paysum = 0;
 * int count3 = 0;
 * for(int c = 0; c<emp.gender.length; c++){
 * 		if(emp.gender[c]=='m'){
 * 			sum2 = sum2+emp.pay[c];
 * 			paysum = paysum+emp.age[c];
 * 		count3++;
 * 		}
 * }
 * double avg = sum2/(count3*1.0);//평균을 적으려면 가장 긴 타입인 double을 적어야한다.
 * System.out.println("남자의 월급의 합 : "+sum2);
 * System.out.println("남자 평균 연령은 : "+avg);
 * /*for(int d = 0; d<emp.age.length;d++){
 * 		if(emp.gender[d]=='m'){
 * 			count4 = (count4+emp.age[d])/2;
 * 		}
 * }
 * System.out.println("남자 평균 연령은 : "+ count4);
 */
	
// 문제 4 독일에 근무하는 사원들의 평균 급여
// int sum = 0;
// int paysum2 = 0;
// for(int a = 0; a < emp.code.length;a++){
// 		if(emp.code[a].equals("DE")){
// 			sum = sum+emp.pay[a];
// 			count++;
// 		}
// }
// double avg2 = sum/(count*1.0);
// System.out.println("독일 사원의 평균 급여는 : "+avg2);*/

':: IT > JAVA' 카테고리의 다른 글

20200107 메소드, String  (0) 2020.03.24
20200106 JAVA arraylist 배열  (0) 2020.03.23
20200103 JAVA (ArrayList, split, Integer.parseInt, remove)  (0) 2020.03.22
20191231 if문, 반복문(for문), 메소드  (0) 2020.03.18
20191230 JAVA 시작  (0) 2020.03.18

+ Recent posts