Frog is cry

배열, 메소드 응용(Day02) 본문

JAVA/국비수업

배열, 메소드 응용(Day02)

Frog is cry 2020. 8. 11. 20:35
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