Frog is cry
배열, 메소드 응용(Day02) 본문
package day02.ex01_배열;
import java.util.Arrays;
import java.util.Arrays;
public class AddrMain {
public static void main(String[] args) {
/*
bit byte
BCD ASCII EBCDIC
1 2 3 4 5 6 7 8
2 4 8 16 32 64 128 256
------------------------------------------------
0 00 000 0~9 a~z 26 +특수기호 +부호
1 01 001 A~Z 26
10 010 0~9 10
11 011 62
100
101
110
111
*/
int a = 10;
int b = a;
a = 20;
System.out.println(a+","+b);
int [] arr1 = {10,20,30};
int [] arr2 = arr1; //얕은 복사 : shallow copy
int [] arr3 = new int[arr1.length];
int [] arr4 = arr1.clone(); //깊은 복사 : deep copy
for (int i = 0; i < arr3.length; i++) {
arr3[i] = arr1[i];
}
arr1[1] = 2222;
System.out.println(arr1);
System.out.println(arr2);
System.out.println(arr3);
System.out.println(arr4);
System.out.println(Arrays.toString(arr1));
System.out.println(Arrays.toString(arr2));
System.out.println(Arrays.toString(arr3));
System.out.println(Arrays.toString(arr4));
}
}
package day02.ex01_배열;
import java.util.Arrays;
// 배열
class AddrData {
String name;
int jum;
int [] arr;
String ppp() {
return "[" + name + "," + jum + Arrays.toString(arr) +"]";
}
}
class AddrMeth{
void meth_1(String a, int b) {
a += "펭하";
b += 10;
System.out.println("meth_1() " + a + "," + b);
}
void meth_2(String a, int[] arr) {
a += "펭하";
arr[1] = 2222;
System.out.println("meth_2() " + a + "," + Arrays.toString(arr));
}
void meth_3(String a, AddrData ad) {
a += "펭하";
ad.name = "현빈";
ad.jum = 99;
ad.arr = new int[] {456,789};
System.out.println("meth_3() " + a + "," + ad.ppp());
}
void meth_4(int no, AddrData ad) {
int [] buf = new int[ad.arr.length+1];
// [0,0,0]
for (int i = 0; i < ad.arr.length; i++) {
buf[i] = ad.arr[i];
// [456,789,0]
}
buf[ad.arr.length] = no;
ad.arr = buf;
System.out.println(Arrays.toString(buf));
}
}
public class AddrParamMain {
public static void main(String[] args) {
//Call By Value
AddrMeth am = new AddrMeth();
String aa = "정우성";
int bb = 100;
am.meth_1(aa,bb);
System.out.println(aa + "," + bb);
System.out.println("==========================");
int[] no = {10,20,30};
am.meth_2(aa, no);
System.out.println(aa + "," + Arrays.toString(no));
System.out.println("==========================");
AddrData aadd = new AddrData();
aadd.name = "박보검";
aadd.jum = 77;
aadd.arr = new int [] {11,22,33};
am.meth_3(aa, aadd);
System.out.println(aa + "," + aadd.ppp());
System.out.println("==========================");
am.meth_4(1234, aadd);
am.meth_4(100, aadd);
am.meth_4(200, aadd);
System.out.println(aadd.ppp());
}
}
package day02.ex01_배열;
import java.util.Arrays;
class ArrayAppend {
int [] arr = new int[0];
void opp(int a) {
int[] buf = new int[arr.length+1];
//int [] buf = new int[1];
buf[arr.length] = a;
//buf[0] = 10; 배열 0번째칸에 10 값을 넣어줌
arr = buf;
}
void ppp() {
System.out.println(Arrays.toString(arr));
}
}
public class ArrayAppendMain {
public static void main(String[] args) {
}
}
도형예제
package day02.ex02_도형예제;
public class Figure_My {
String name; // 이름
double area; // 넓이
double round; // 둘레
void ractangle(double a, double b) {
name = "직사각형";
area = (a * b) / 2;
round = (a * b);
System.out.println("이름 :" + name + "," + " 넓이:" + area + "," + " 둘레 :" +round);
}
void triangle(double a, double b, int c) {
name = "직각삼각형";
area = (a * b) / 2;
round = a + b + c;
System.out.println("이름 :" + name + "," + " 넓이:" + area + "," + " 둘레 :" +round);
}
void one(double a) {
// 둘레 = 반지름 * 2 * 3.14
// 넓이 = 반지름 * 반지름 * 3.14
name = "원";
area = (double)(int)(a * 2 * Math.PI * 100 + 0.5) / 100 ;
round = a * a * Math.PI;
System.out.println("이름 :" + name + "," + " 넓이:" + area + "," + " 둘레 :" +round);
}
//출력
public static void main(String[] args) {
Figure_My fg = new Figure_My();
fg.ractangle(10, 10);
fg.triangle(10, 10, 10);
fg.one(10);
}
}
package day02.ex02_도형예제;
class MakeShape{
MethShape [] arr = new MethShape[0];
void insertRec( int w, int h) {
MethShape [] buf = new MethShape[arr.length+1];
for (int i = 0; i < arr.length; i++) {
buf[i] = arr[i];
}
buf[arr.length] = new MethShape();
buf[arr.length].rectangle(w, h);
arr = buf;
}
void insertCir(int r) {
MethShape [] buf = new MethShape[arr.length+1];
for (int i = 0; i < arr.length; i++) {
buf[i] = arr[i];
}
buf[arr.length] = new MethShape();
buf[arr.length].circle(r);
arr = buf;
}
void insertTri(int w, int h, int l) {
MethShape [] buf = new MethShape[arr.length+1];
for (int i = 0; i < arr.length; i++) {
buf[i] = arr[i];
}
buf[arr.length] = new MethShape();
buf[arr.length].triangle(w, h, l);
arr = buf;
}
void rankCal() {
for (MethShape me : arr) {
me.rank = 1;
// System.out.println(me.area+":");
for (MethShape you : arr) {
if(me.area < you.area)
me.rank++;
// System.out.println(you.area+",");
}
System.out.println(me.rank);
}
}
void totPPP() {
rankCal();
double totArea = 0, totBorder = 0;
for (MethShape ms : arr) {
totArea += ms.area;
totBorder += ms.border;
ms.ppp();
}
System.out.println("합계 :"+totArea+","+totBorder);
System.out.println("평균 :"+totArea/arr.length+", 둘레 :" + totBorder);
}
}
class MethShape{
int rank;
String name;
double area, border;
void rectangle(int w, int h) {
name = "직사각형";
area = w* h;
border = w+h;
//ppp();
}
void circle(int r) {
double pi = 3.14;
name = "원";
area = r *r*pi;
border = r *2*pi;
//ppp();
}
void triangle(int w, int h, int l) {
name = "직각삼각형";
area = w* h / 2;
border = w+h +l;
//ppp();
}
void ppp() {
System.out.println(name+":"+area+","+border+","+rank);
}
}
public class MethShapeMain {
public static void main(String[] args) {
MethShape ms = new MethShape();
ms.rectangle(5, 6);
ms.circle(5);
ms.triangle(5,6,8);
System.out.println("-------------------");
MakeShape mms = new MakeShape();
mms.insertRec(5, 6);
mms.insertCir(8);
mms.insertTri(5, 6, 8);
mms.insertRec(10,20);
mms.insertCir(5);
mms.totPPP();
// 원, 직각삼각형도 입력하는 메소드를 출력하세요
// 모든 도형들의 넓이와 둘레를 합산하세요
// 도형 넓이 순서를 출력하세요
}
}
'JAVA > 국비수업' 카테고리의 다른 글
클래스 - (Day01) (0) | 2020.08.10 |
---|---|
익명클래스(day25) (0) | 2020.08.03 |
interface(day24) (0) | 2020.07.31 |
instanceOf(day24) (0) | 2020.07.31 |
다형성, instanceOf(Day22) (0) | 2020.07.30 |
Comments