예시1)
import java.util.Scanner;
class Circle{
int r;
Circle(int r){
this.r=r;
}
double area() {
return r*r*3.14;
}
}
public class mmdd0229 {
public static void main(String[] args) {
//객체 배열 : 객체를 저장할 수 있는 공간(타입: 클래스)
Circle [] ary = new Circle[4]; // int [] ary = new int [4]
// 객체 배열 생성 = 객체 배열 선언
//Circle c=new Circle();
for(int i=0;i<ary.length;i++) {
ary[i]=new Circle(i); //객체를 4개 생성해서 배열위치에 저장
System.out.println(ary[i].area());
}
}
}
예시2)
import java.util.Scanner;
class Song{
String singer,song;
Song(String singer, String song){
this.singer=singer;
this.song=song;
}
}
public class mmdd0229 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Song so[]=new Song[2];//객체배열 생성
for(int i=0;i<2;i++) {
System.out.println("가수");
String singer=scanner.next(); //BTS IU
System.out.println("제목");
String title=scanner.next(); //Butter Goodday
so[i]=new Song(singer, title);
}
for(int i=0;i<2;i++) {
System.out.println(so[i].singer+" "+so[i].song);
}
}
}
객체배열 및 추상클래스 활용
import java.util.Scanner;
abstract class Circle{
protected double r;
Circle(double r){
this.r=r;
}
abstract double get();
}
class Cir extends Circle{
Cir(double r){
super(r);
}
@Override
double get() {
return r;
}
}
public class mmdd0229 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Circle c[]=new Circle[5];
for(int i=0;i<c.length;i++) {
double r=scanner.nextDouble();
c[i]=new Cir(r); //객체 생성
//Circle c[]=new Cir(r); -> Upcasting
System.out.println(c[i].get());
}
}
}
객체배열 (for-each)
import java.util.Scanner;
class Num{
int n;
Num(int n){
this.n=n;
}
int get() {
return n;
}
}
public class mmdd0229 {
public static void main(String[] args) {
Num[] ary=new Num[] {new Num(1), // 객체 생성드(값 초기화)
new Num(2),
new Num(3)};
//int [] arr= {1,2,3};
for(Num n:ary) {
System.out.println(n.get()); // 1,2,3 출력
}
}
}