728x90
반응형
[ Array 배열 ]
기본형 데이터 저장
\TestArray1.java
package step4;
public class TestArray1 {
public static void main(String[] args) {
// 배열 선언
int age[] ;
// 배열 생성 : Heap영역에 공간이 생김
age = new int[3];
System.out.println(age.length); //3 : 배열방의 수
// 배열에 요소할당
age[0] = 10; //배열 첫번째 방에 10을 할당(저장)
System.out.println(age[0]); //10
System.out.println(age[1]); //기본초기화인 0
System.out.println(age[2]); //기본초기화인 0
// System.out.println(age[3]); //error : Out of Boundary Index
// 배열 요소 재할당
age[1] = 14;
age[2] = 20;
//for문 이용
System.out.println("***age 배열 요소를 모두 출력***");
for (int i=0; i<age.length; i++) {
if (i == age.length-1) { //마지막 배열요소를 출력한 후에는 끝을 외치기
System.out.println("age["+i+"]: "+age[i]);
System.out.println("끝!");
}
else {
System.out.println("age["+i+"]: "+age[i]);
}
}
}
}
TestArray3.java
package step4;
public class TestArray3 {
public static void main(String[] args) {
// 배열 선언, 생성, 할당 동시에 진행
int[] point = {200, 300, 700, 100, 400};
// for loop를 이용하여 point를 모두 출력
for (int i=0; i < point.length; i++) {
System.out.println(point[i]);
}
// for loop를 이용하여 point의 평균값 출력
System.out.println("***point배열의 평균값 출력***");
int sum = 0;
double avg = 0.0;
for (int i=0; i<point.length; i++) {
sum += point[i];
avg += point[i]/point.length;
}
System.out.println("포인트 총합: "+sum);
System.out.println("포인트 평균1: "+sum/point.length + " (type:int)");
System.out.println("포인트 평균2: "+avg + " (type:double)");
}
}
참조형 데이터 저장 1
\TestRefArray1.java
package step5;
public class TestRefArray1 {
public static void main(String[] args) {
// 배열 선언
Person p[];
// 배열 생성
p = new Person[3];
// 배열 할당 전
// 참조형의 기본형인 null이 들어간다
System.out.println(p[0]);
// 배열 할당
// 배열 첫번째 방에 ("아이유",28) 객체를 저장
p[0] = new Person("아이유", 28);
p[1] = new Person("밀크", 10);
p[2] = new Person("김태리", 31);
System.out.println(p[0]); // p[0]의 주소값
System.out.println(p[0].getName()); // p[0]의 이름
System.out.println(p[0].getAge()); // p[0]의 나이
System.out.println("**배열요소의 name을 모두 출력해보자**");
for (int i=0; i<p.length; i++) {
if(i!=p.length-1)
System.out.print(p[i].getName()+" / ");
else
System.out.print(p[i].getName());
}
}
}
\TestRefArray2.java
public class TestRefArray2 {
public static void main(String[] args) {
// 배열 선언, 생성, 할당 동시에
Person p[] = {new Person("옹성우",22),
new Person("리쳐드", 26),
new Person("크롬", 4)};
System.out.println(p.length); //3
System.out.println("**배열 요소의 name과 age출력**");
/*
* 옹성우 22
* 리쳐드 26
* 크롬 4
*/
for(int i=0; i<p.length; i++) {
System.out.println(p[i].getName()+' '+p[i].getAge());
}
System.out.println("**배열 요소 age에 20을 더한다**");
// for문을 이용해 나이를 20세씩 더한다
for(int i=0; i<p.length; i++) {
//기존나이를 리턴하여 20을 더해준다
int old_age = p[i].getAge()+20;
p[i].setAge(old_age);
System.out.println(p[i].getName()+' '+p[i].getAge());
}
}
}
** Person Class
\Person.java
package step5;
public class Person {
private String name;
private int age;
//Constructor
public Person(String name, int age) {
//super();
this.name = name;
this.age = age;
}
//getter, setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
참조형 데이터 저장 2
\TestRefArray3.java
package step5;
import step1.review.Student;
public class TestRefArray3 {
public static void main(String[] args) {
School school = new School();
Student stuArray[] = {
new Student("20", "아이유", "판교"),
new Student("13", "째아", "제주"),
new Student("18", "당근", "충청")
};
school.printAll(stuArray);
/*
* 학번 20, 이름 아이유, 주소 판교
*/
}
}
** class
\School.java
package step5;
import step1.review.Student;
public class School {
public void printAll(Student[] stuArray) {
for(int i=0; i<stuArray.length; i++) {
System.out.println("학번: "+stuArray[i].getId()+
" / 이름: "+stuArray[i].getName()+
" / 주소: "+stuArray[i].getAddress());
}
}
}
\step1/review/Student.java
package step1.review;
public class Student {
private String id;
private String name;
private String address;
public Student(String id, String name, String address) {
this.id = id;
this.name = name;
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
참조형 데이터 저장 3
*최고 최저가 출력 메서드 포함
Test, 실행 Class
\TestRefArray.java
package step1;
public class TestRefArray5 {
public static void main(String[] args) {
ItemVO[] item = {
new ItemVO("갤럭시9", 100),
new ItemVO("아이폰8", 110),
new ItemVO("G7", 50),
};
ItemService service = new ItemService();
service.printAllModel(item);
/*
* 갤럭시9
* 아이폰8
* G7
*/
// 아이템 최고가를 출력한다
service.printMaxPrice(item); //110
}
}
* VO Class
ItemVo.java
\ItemVO.java
package step1;
/* 자바 클래스명 관례
* VO : Value Object
* Service : 비즈니스 로직을 담당하는 객체
* DAO : Data Access Object 데이터 제어 객체
* DTO : Data Transfer Object 데이터 전송 객체
*/
public class ItemVO {
private String model;
private int price;
public ItemVO(String model, int price) {
//super();
this.model = model;
this.price = price;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}
*Service Class
ItemService.java
\ItemService.java
package step1;
public class ItemService {
public void printAllModel(ItemVO[] item) {
for(int i=0; i<item.length; i++) {
System.out.println(item[i].getModel());
}
}
public void printMaxPrice(ItemVO[] item) {
int maxPrice = Integer.MIN_VALUE;
String maxPriceModel = null;
for(int i=0; i<item.length; i++) {
if (item[i].getPrice() > maxPrice) {
maxPrice = item[i].getPrice();
maxPriceModel = item[i].getModel();
}
}
System.out.println("최고가 모델: "+maxPriceModel+"("
+maxPrice+"원)");
}
}
728x90
반응형