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 |