1.DataClass

package com.ohj.array;
import java.util.ArrayList;
public class DataClass {

ArrayList<EmployeeClass> empArr = new ArrayList<EmployeeClass>();//임포트 해줘야 함

	public DataClass(){

		empArr.add(new EmployeeClass(1001, "송민호", "사원", "2007-03-01", 300, 0, 20));
		empArr.add(new EmployeeClass(1002, "이영민", "대리", "2007-04-02", 250, 80, 30));
		empArr.add(new EmployeeClass(1003, "김민우", "과장", "2005-02-10", 500, 100, 30));
		empArr.add(new EmployeeClass(1004, "장희재", "부장", "2003-09-02", 600, 0, 20));
		empArr.add(new EmployeeClass(1005, "오종호", "과장", "2005-04-07", 450, 200, 30));
		empArr.add(new EmployeeClass(1006, "최형우", "부장", "2003-10-09", 480, 0, 30));
		empArr.add(new EmployeeClass(1007, "윤가람", "부장", "2004-01-08", 520, 0, 10));
		empArr.add(new EmployeeClass());

	}

}

 

2.EmployeeClass

package com.ohj.array;
public class EmployeeClass {

	int empNo=0;
	String eName ="";
	String job="";
	String hireDate="";
	int sale=0;
	int commission=0;
	int deptNo=0;
	
	public EmployeeClass(){//기본 생성자
	}
//모든데이터를 전달받는 생성자

	public EmployeeClass(int e,String n,String j,String h,int s,int c,int f,int d){
	this.empNo=e;
	this.eName=n;
	this.job=j;
	this.hireDate=h;
	this.sale=s;
	this.commission=c;
	this.deptNo=d;
	}

//부서 식별 번호가 없는 데이터를 전달받는 생성자

	public EmployeeClass(int e,String n,String j,String h,int s,int c,int f){
	
	this.empNo=e;
	this.eName=n;
	this.job=j;
	this.hireDate=h;
	this.sale=s;
	this.commission=c;

	}
}

 

3.InfoClass

package com.ohj.array;

	public class InfoClass {//클래스 선언 부에는 private를 절대 붙이지 않는다

		private String no;//private 내 클래스 내부에서만 사용하겠다.외부에서는 변수 값을 사용 할 수 없다.
		int age = 0;

		private InfoClass(){//이곳에 private를 적용하면 main에 객체를 생성하지 못한다.
		}

		public InfoClass(String string) {

			this.no=string;
			this.ageOperator();
		}

		private void ageOperator(){

			//ic.no = "881234-4345678";
			String[] s=this.no.split("-");// -를 기준으로 둘로 쪼갬
			//s[0] :"881234"//s[1]"2345678"이 들어가게 된다.
			String year=s[0].substring(0,2);//뽑아내려는 숫자 s[0]에는 0=8/1=8로 순서대로 들어가 있다. 시작 인덱스번호를 가져온다.(0부터 2번까지의 숫자를 가져온다)
			System.out.println(year);
			String genderNo=s[1].substring(0,1);
			System.out.println(genderNo);

			if(genderNo.equals("1")||genderNo.equals("2")){// 젠더가 1이거나 2이면
				this. age = 2020-(1900+Integer.parseInt(year));
				System.out.println(this.age);//문자열을 숫자로 바꾸는 메소드
			}else{
				this. age = 2000+Integer.parseInt(year);//주민등록번호를 나이를 구하는 법
				if(age>2020){	
					System.out.println("연도를 잘못 입력하셨습니다.");
				}else{
					this.age=2020-this.age;
				}
			}
		}
	}

 

4.TestClass

package com.ohj.array;


public class TestClass {

	int a =10;
	final float PI=3.14f;// 최종값이라고 선언했기 때문에 밑에서 바꿀 수 없다.(final)
	public TestClass(){
		this.a=100;
		//this.PI=3.13195f 상수 값은 변경불가
		float f2 = this.PI;// 꺼내 쓸 수는 있다
	}
}

 

5.MainClass

package com.ohj.array;

import java.util.ArrayList;

public class MainClass {
		public static void main(String[] args) {
			DataClass dc = new DataClass();
			for(int i =0;i<dc.empArr.size();i++){
				System.out.println(dc.empArr.get(i).eName);
			}
//InfoClass ic = new InfoClass("181234-3345678");
//System.out.println(ic.age);
//TestClass tc = new TestClass();

//ArrayList<TestClass> a = new ArrayList<TestClass>();//예약을 해놨기 때문에 따로 설정해줄 필요가 없음
//a.add(tc);
//int s = a.size();//방개수를 아는 방법
//System.out.println(s);
//Object t = a.get(0);
//TestClass t2 = (TestClass)a.get(0);
		}

}

/*​

배열 : 주로 여러개의 값을 저장 할때

배열의 특징 : 동일한 데이터 타입만 저장 가능

초기 인덱스(방)의 개수는 수정 불가능

초기에 인덱스(방)의 갯수를 설정

ex) TestClass[] tArr= new TestClass[3];

​

ArrayList : 외부클래스로 존재(ArrayList.Class)

이것을 사용하려면 반드시 import가 필요(import java.util.ArrayList)

내부 메소드를 통하여 갯수가 정해지고 수정가능, 따라서 객체생성이 필수(new ArrayList())

ArrayList는 주로 객체들을 저장할 때 사용

타양한 타입의 데이터를 한번에 보관 할 수있다(오브젝트 파일로 추가되기 때문에 가능하다)

ex)ArrayList a = new ArrayList();

a.add(new TestClass);

a.add(true);

a.add(1123);

a.add(12.5);

a.add('abcd);

단 저장된 값은 오브젝트 타입으로 저장된다.

따라서 데이터를 사용 할 경우 원래 타입으로 변환해야 한다.

예 TestClass t =(TestClass)a.get(0);

​

만약 동일한 타입의 객체들을 저장할 경우에는 미리 타입을 예약한다.(배열과 ArrayList의 차이점)

ex) ArrayList<TestClass> a = new ArrayList<TestClass>();

a.add(new TestClass());//테스트 클래스 타입으로 저장 됨.

TestClass tt = a.get(0);//테이터 타입 변환 필요 없음.

​

arrayList의 주요 메소드

1. add; // 맨 마지막 위치에 데이터 추가

2. get(인덱스번호);//지정한 위치의 데이터 추출

3. remove(인덱스번호)//지정한 위치의 데이터를 제거하고 그 데이터를 반환.

4. size() // 데이터의 갯수를 반환
​

ArrayList에 데이터를 추가하거나 삭제할 경우, size()는 자동으로 바뀐다.

ex) ArrayList<TestClass> a= new ArrayList<TestClass>();

a.add(new testClass); // Size()=>1

a.add(new testClass); // Size()=>2

a.add(new testClass); // Size()=>3

a.remove(0); //size()=>2

이 때 제거된 데이터 위치로 다른 데이터들이 한칸씩 이동된다.

*/

+ Recent posts