본문 바로가기
코딩/수업 정리

21.01.19 [040] Tue

by 6^6 2021. 1. 19.
728x90

자바스크립트

 

(PT)Javascript와_Node.js_05강_배열

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<script type="text/javascript"></script>
</head>
<body>
	<script type="text/javascript">
		var varArrIndex = new Array(123, "ABC", "가나다", "abc", "가나다", "123");
		console.log("varArrIndex.indexOf(\"가나다\") :" + varArrIndex.indexOf("가나다"));
		console.log("varArrIndex.lastIndexOf(\"가나다\") :" + varArrIndex.lastIndexOf("가나다"));
		console.log("varArrIndex.indexOf(123) :" +varArrIndex.indexOf(123));
		console.log("varArrIndex.lastIndexOf(123) :"+varArrIndex.lastIndexOf(123));
		console.log("varArrIndex.indexOf(\"XYZ\") :" + varArrIndex.indexOf("XYZ"));
	</script>
</body>
</html>

IndexOf()는 String값만 찾는다. 

발견하지 못하면 -1을 반환한다.

immutable인지 아닌지 구분하는게 중요

reverse

[join 과 reverse]
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<script type="text/javascript"></script>
</head>
<body>
	<script type="text/javascript">
		var varArrJoin = new Array("AB", "CD", "EF", "HI");
		console.log("varArrJoin : " + varArrJoin.join());
		console.log("varArrJoin : " + varArrJoin.join(" | "));
		console.log("varArrJoin : " + varArrJoin.join(":"));
		console.log("varArrtoString : " + varArrJoin.toString());
	
		var varArrReverse = new Array("E","B","A","C","D");
		console.log("varArrReverseBefore : " + varArrReverse);
		console.log("varArrReverse.reverse() : " + varArrReverse.reverse());
		console.log("varArrReverseAfter : "+varArrReverse);
		</script>
</body>
</html>

push()는 배열갯수 세는것.

 

 

shift()랑 pop()은 패스 - 선생님도 써본적없다.

 

 

 

(PT)Javascript와_Node.js_06강_제어문-조건문

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<script type="text/javascript"></script>
</head>
<body>
	<script type="text/javascript">
		var varNum = 100;
		if(varNum>50){
			console.log("varNum > 50");
		}
		if(varNum <= 50){
			console.log("varNum <= 50");
		}
		console.log("varNum : " + varNum);
		</script>
</body>
</html>

[javascript로 성적표 만들기 예제]
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<script type="text/javascript"></script>
</head>
<body>
	<script type="text/javascript">

		var Kor = prompt("국어", "점수를 입력하세요.");//입력
		alert(Kor);
		var Math = prompt("수학", "점수를 입력하세요.");//입력
		alert(Math);
		var Eng = prompt("영어", "점수를 입력하세요.");//입력
		alert(Eng);
		var inputCon = confirm("입력이 끝났습니다.");//입력
        alert(inputCon);
		
        var varScore = Number(Kor)+ Number(Math)+ Number(Eng);
        var varGrade = varGrade/3.0;
		console.log("국어점수는 "+ Kor);
		console.log("수학점수는 "+ Math);
		console.log("영어점수는 "+ Eng);
		console.log("총점은 "+varScore);
		
		console.log("성적은 ")
		if(varGrade>=90){
			console.log("수")
		}else if(varGrade>=90){
			console.log("우")
		}else if(varGrade>=90){
			console.log("미")
		}else if(varGrade>=90){
			console.log("양")
		}else{
			console.log("가")
		}
		
	</script>
</body>
</html>

 

 

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<script type="text/javascript"></script>
</head>
<body>
	<script type="text/javascript">

	var varArr = [1,2,3,4,5];
	for(var i=0; i<varArr.length; i++){
		
		document.write("varArr["+i+"] : "+varArr[i])
	}
	for(var i in varArr){
		document.write("varArr["+i+"] : "+varArr[i])	
	}
	</script>
</body>
</html>

document.write로 쓰면 바로 출력된다.

 

 

[11과7의 배수 중 첫번째인 배수만 출력하기 예제]
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<script type="text/javascript"></script>
</head>
<body>
	<script type="text/javascript">
	var i = 0;
	for(i=1; i<=1000; i++){
		if((i%7==0) && (i%11==0)){
			document.write(i)
			break;
		}
	}
	</script>
</body>
</html>

 

[구구단 몇단인지까지 추가해서 출력하기]
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<script type="text/javascript"></script>
<style>
</style>
</head>
<body>
	<script type="text/javascript">
		document.write("<table border = 1>")
		for (var i = 2; i <= 9; i++) {
			document.write("<td>" + i + "단</td>")
		}
		for (var i = 1; i <= 9; i++) {
			document.write("<tr>");
			for (var j = 2; j <= 9; j++) {
				document.write("<td>" + j + "x" + i + "=" + i * j + "</td>");
			}
			document.write("</tr>");
		}

		document.write("</table>")
	</script>
</body>
</html>

(PT)Javascript와_Node.js_08강_함수-기본

 

function은 return타입이 없다. var밖에 표현되는게 없기때문

return타입있는거 딱 하나 return arguments; (arguments 밖에 리턴타입 오는게 없다. ㅁㄱ리턴타입을 동적으로 결정)

 

<명시적, 선언적 함수>

function 함수이름(  ){ 실행문 };

 

<익명함수>

var 변수이름 = function(  ) { 실행문 }; //여기서 function은 함수이름이 아니다! 그냥 넣어준 변수이름!

 

익명함수: 이름이 없는 함수로, 즉시 실행이 필요할 경우 사용합니다.
(function () {
    //logic
})();

 

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<script type="text/javascript"></script>
<style>
</style>
</head>
<body>
	<script type="text/javascript">
	var varArr;
	function funName(){
		return arguments;
	}
	varArr = funName(1,2,3,4,5,6,7);
	console.log("varArr : "+varArr);
	console.log("varArr.length : "+varArr.length);
	
	for(var i in varArr){
		console.log("varArr["+i+"]"+ varArr[i]);
	}
	</script>
</body>
</html>

명시적 함수는 연산이 이미 들어간것

익명함수는 메모리에 올라가있지도 않은상태이다. 연산을 시켜야하기 때문에 fun2(); 가 따로 있어야한다.

 

 

  *arguments 특징*

opentutorials.org/course/743/6548

arguments는 함수안에서 사용할 수 있도록 그 이름이나 특성이 약속되어있는 일종의 배열

function sum(){
    var i, _sum = 0;    
    for(i = 0; i < arguments.length; i++){
        document.write(i+' : '+arguments[i]+'<br />');
        _sum += arguments[i];
    }   
    return _sum;
}
document.write('result : ' + sum(1,2,3,4));
//0 : 1
//1 : 2
//2 : 3
//3 : 4
//result : 10

함수 sum은 인자로 전달된 값을 모두 더해서 리턴하는 함수다. 
그런데 1행처럼 함수 sum은 인자에 대한 정의하가 없다. 
하지만 마지막 라인에서는 4개의 인자를 함수 sum으로 전달하고 있다. 
함수의 정의부분에서 인자에 대한 구현이 없음에도 인자를 전달 할 수 있는 것은 왜 그럴까? 
그것은 arguments라는 특수한 배열이 있기 때문이다.
arguments는 함수안에서 사용할 수 있도록 그 이름이나 특성이 약속되어 있는 일종의 배열이다. 
arguments[0]은 함수로 전달된 첫번째 인자를 알아낼 수 있다. 
또 arguments.length를 이용해서 함수로 전달된 인자의 개수를 알아낼 수도 있다. 
이러한 특성에 반복문을 결합하면 함수로 전달된 인자의 값을 순차적으로 가져올 수 있다. 
그 값을 더해서 리턴하면 인자로 전달된 값에 대한 총합을 구하는 함수를 만들 수 있다.
arguments는 사실 배열은 아니다. 실제로는 arguments 객체의 인스턴스다.

 

 

(PT)Javascript와_Node.js_09강_함수-심화 - 중요!

 

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<script type="text/javascript"></script>
<style>
</style>
</head>
<body>
	<script type="text/javascript">

	function funName(){
		return function(x){
			for(var i=1; i<10; i++){
				console.log(x + "*"+i+"="+(x*i));
			}
		}
	}
	var returnFun = funName();
	returnFun(4);
	
	</script>
</body>
</html>

 

함수문 안에 함수문이 올 수 있다. -자바와 다른점. 자바는 함수안에 함수를 넣을 수 없기때문

 

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<script type="text/javascript"></script>
<style>
</style>
</head>
<body>
	<script type="text/javascript">
		function funName(x) {
			var varName = "x + 단"

			return function() {
				console.log(varName);
				for (var i = 1; i < 10; i++) {
					console.log(x + "*" + i + "=" + (x * i));
				}
			}
		}
		var returnFun = funName(5);
		returnFun();
	</script>
</body>
</html>

 

 

 

 

 

 

 

<내부함수 , 외부함수, closer 예제>

opentutorials.org/course/1316/6544

[내부함수 예제]
function outter(){
    function inner(){
        var title = 'coding everybody'; //지역변수
        alert(title);
    }
    inner();
}
outter();
//coding everybody를 한번만 띄운다.
[외부함수 예제]
function outter(){
    var title = 'coding everybody';  //전역변수
    function inner(){        
        alert(title);
    }
    inner();
}
outter();
//coding everybody를 한번만 띄운다.
[closer 클로저 예제]
function outter(){
    var title = 'coding everybody';  
    return function(){        
        alert(title);
    }
}
inner = outter();
inner();
//coding everybody를 출력

클로저(closure)는 내부함수와 밀접한 관계를 가지고 있는 주제다. 
내부함수는 외부함수의 지역변수에 접근 할 수 있는데 
외부함수의 실행이 끝나서 외부함수가 소멸된 이후에도 
내부함수가 외부함수의 변수에 접근 할 수 있다.
이러한 메커니즘을 클로저라고 한다. 

 

 

Spring

Java_자바_Spring_스프링_강의_02강_스프링 프로젝트 만들기

 

DI와 IOC컨테이너 --말로 반드시 표현할 줄 알아야함. 코딩만 하는걸로는 부족. 면접 100%

 

 

 

 

 

스프링 프로젝트 생성

 

[MainClass.java]
package com.javalec.ex;

public class MainClass {

	public static void main(String[] args) {
		
		Calculation calculation = new Calculation();
		calculation.setFirstNum(10);
		calculation.setSecondNum(2);
		
		calculation.addition();
		calculation.subtraction();
		calculation.multiplication();
		calculation.division();
	}	
}//addition()
//10 + 2 = 12
//subtraction()
//10 - 2 = 8
//multiplication()
//10 * 2 = 20
//division()
//10 / 2 = 5
[Calculation.java]
package com.javalec.ex;

public class Calculation {
	
	private int firstNum;
	private int secondNum;
	
	public void addition() {
		System.out.println("addition()");
		int result = firstNum + secondNum;
		System.out.println(firstNum + " + " + secondNum + " = " + result);
	}
	
	public void subtraction() {
		System.out.println("subtraction()");
		int result = firstNum - secondNum;
		System.out.println(firstNum + " - " + secondNum + " = " + result);
	}
	
	public void multiplication() {
		System.out.println("multiplication()");
		int result = firstNum * secondNum;
		System.out.println(firstNum + " * " + secondNum + " = " + result);
	}
	
	public void division() {
		System.out.println("division()");
		int result = firstNum / secondNum;
		System.out.println(firstNum + " / " + secondNum + " = " + result);
	}
	
	public int getFirstNum() {
		return firstNum;
	}

	public void setFirstNum(int firstNum) {
		this.firstNum = firstNum;
	}

	public int getSecondNum() {
		return secondNum;
	}

	public void setSecondNum(int secondNum) {
		this.secondNum = secondNum;
	}
	
	
}

 

 

DI란 dependency Injection

의존성.

dependency =  객체

 

class Humman{
	Eye eye;
	Hand hand;
}

class Computer{ //★부모자식관계는 아니다! 의존관계임.
	/*이렇게 두가지 있다고 할 때
	Cpu cpu;
	MatherBoard board;*/
	
	//첫번째 방법. 다이렉트로 넣는다.
	Cpu cpu = new AMDCpu();

	//두번째 방법. 생성자와 set통해서 받는다.
	public Computer(Cpu cpu) {
		this.cpu = cpu;
	}
	
	public setCpu(Cpu cpu) {
		this.cpu = cpu;
	}
}

컴퓨터는 Cpu가 없으면 안된다.

그래서 이 두개의 관계를 의존성이라고 한다.

 

외부에서 주입받는다.

 

 

==뉴렉==

DI = 부품을 조립해준다 = Dependency Injection= 종속성주입

<setter Injection>

B b = new B( );

A a = new A( );

a.setB(b)

 

<Construction Injection> - 주입

B b = new B( );

A a = new A(b);

 

 

IOC=부품 컨테이너. 조립까지 해서 담아줌

제일 먼저 만들어지는건 작은부품. 

역순으로 객체를 생성하는 컨테이너.

단순히 부품만 담는게 아니라 역순으로 결합에 조립까지해서 단순히 dependency 컨테이너가 아닌 ioc컨테이너.

이런걸 spring이 가지고있다.

 

5강

<dependency를 직접 injection하기>

부품 직접생성하고 조립

 

두가지클래스 생성. 1. 데이터갖고있는클래스 2.그걸가지고활용해서 출력하는 클래스

1.Exam exam = 2.new NewlacExam();

Exam은 단순부모가아니라 interface로서의 부모.

NewlacExam이 구현객체

1.에 총합과 평균점수 

2.에 총합과 평균점수를 어떻게 구현할건지 작성

 

ExamConsole console = new ExamConsole(exam);

console.print();

exam을 출력해주는 examconsole을 만듦

 

 

=======

 

 

IOC 컨테이너(DI에서 유래)

Inversion of control; = 조립 (※inversion=전도)

//객체에대한 생성순서(흐름)
Computer → cpu → chip
Computer computer = new Computer(); // = 완제품

//IOC 생성순서
Chip chip = new Chip();
CPU cpu = new Cpu(chip);
Computer computer = new Computer(Cpu); // = 조립컴
(이게 inversion of control. 생성이 들어가야함)

왜 한줄에 끝낼수있는걸 거꾸로 해서 객체넣는 방법을 선택?

완성품은 한번 조립된걸 못바꾼다. 조립컴은 원하는대로 바꿀 수 있다.

어떻게 바꿈? ↓

Chip chip = new Amd();
Cpu cpu = new Cpu();
Computer computer = new Computer();

computer.setCpu(new Intel());//이렇게 바꾸면
Amd를 Intel로 바꿀 수가 있다.

 

 

Java_자바_Spring_스프링_강의_04강_DI(Dependency Injection)-II

 

<bean~~> = 객체생성

<property><value> = set함수호출. 홍길동 호출해서 setName에 name에 넣는다.

 

객체생성을 문서로 한다.

 

 

 

 

 

[MainClass.java]
package com.javalec.ex;

import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;

public class MainClass {

	public static void main(String[] args) {
		String configLocation = "classpath:applicationCTX.xml";
		AbstractApplicationContext ctx = new GenericXmlApplicationContext(configLocation);
		//↑다형성 적용. configLocation을 넣음
		//GenericXmlApplicationContext는? 그냥 Context라고 생각. 이게바로 IoC컨테이너(=스프링 객체)
		
		MyInfo myInfo = ctx.getBean("myInfo", MyInfo.class);
		myInfo.getInfo();
		ctx.close();
	}
}
[BMICalcoulator.java]
package com.javalec.ex;

public class BMICalculator {
	private double lowWeight;
	private double normal;
	private double overWeight;
	private double obesity;

	public void bmiCalculation(double weight, double height) {
		double h = height * 0.01;
		double result = weight / (h * h);

		System.out.println("BMI 지수: " + (int) result);

		if (result > obesity) {
			System.out.println("비만입니다.");
		} else if (result > overWeight) {
			System.out.println("과체중 입니다");
		} else if (result > normal) {
			System.out.println("정상 입니다");
		} else {
			System.out.println("저체중 입니다");
		}
	}

	public void setLowWeight(double lowWeight) {
		this.lowWeight = lowWeight;
	}

	public void setNormal(double normal) {
		this.normal = normal;
	}

	public void setOverWeight(double overWeight) {
		this.overWeight = overWeight;
	}

	public void setObesity(double obesity) {
		this.obesity = obesity;
	}

}
[MyInfo.java]
package com.javalec.ex;

import java.util.ArrayList;

public class MyInfo {

	private String name;
	private double height;
	private double weight;
	private ArrayList<String> hobbys;
	private BMICalculator bmiCalculator;

	public BMICalculator getBmiCalculator() {
		return bmiCalculator;
	}

	public void setBmiCalculator(BMICalculator bmiCalculator) {
		this.bmiCalculator = bmiCalculator;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void setHeight(double height) {
		this.height = height;
	}

	public void setWeight(double weight) {
		this.weight = weight;
	}

	public void setHobbys(ArrayList<String> hobbys) {
		this.hobbys = hobbys;
	}

	public void bmiCalculation() {
		bmiCalculator.bmiCalculation(weight, height);
	}

	public void getInfo() {
		System.out.println("이름: " + name);
		System.out.println("키: " + height);
		System.out.println("몸무게: " + weight);
		System.out.println("취미: " + hobbys);
		bmiCalculation();
	}
}
[applicationCTX.xml][패키지명 : src/main/resources]
//이름은 MainClass.java파일에서 String configLocation 에 있는걸로.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
//요 윗부분 4글자는 복붙!!!

//class javale.ex 이 패키지명 꼭 맞춰주기
  <bean id="bmiCalculator" class="com.javalec.ex.BMICalculator">
    <property name="lowWeight">
      <value>18.5</value>
    </property>
    <property name="normal">
      <value>23</value>
    </property>
    <property name="overWeight">
      <value>25</value>
    </property>
    <property name="obesity">
      <value>30</value>
    </property>
  </bean>

  <bean id="myInfo" class="com.javalec.ex.MyInfo">
    <property name="name">
      <value>홍길동</value>
    </property>
    <property name="height">
      <value>187</value>
    </property>
    <property name="weight">
      <value>85</value>
    </property>
    <property name="hobbys">
      <list>
        <value>수영</value>
        <value>요리</value>
        <value>독서</value>
      </list>
    </property>
    <property name="bmiCalculator">
      <ref bean="bmiCalculator"/>
    </property>
  </bean>
</beans>

.xml파일에서 수정하면 된다. 매우 간편.

//출력화면

 

 

 

오늘의 문제

1.클로져란 무엇인가?

클로저(closure)는 내부함수와 밀접한 관계를 가지고 있는 주제다. 

외부함수의 지역변수에 접근 가능한 내부함수가 소멸할 때까지 외부함수가 소멸되지 않는 특성을 의미

[closer 클로저 예제]
function outter(){
    var title = 'coding everybody';  
    return function(){        
        alert(title);
    }
}
inner = outter();
inner();
//coding everybody를 출력


2.js를 이용하여, 구구단중 홀수단만 나오게 하시오.

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
<script type="text/javascript"></script>
<style>
</style>
</head>
<body>
	<script type="text/javascript">
		document.write("<table border = 1>")	
		for (var k = 1; k <= 4; k++) {
			document.write("<td>" + (2*k+1) + "단</td>")
		}
		for (var i = 1 ; i <= 9; i++) {
			document.write("<tr>");
			for (var j =1; j <= 4; j++) {
			
				document.write("<td>" + (2*j+1) + "x" + i + "=" + i * j + "</td>");
			}
			document.write("</tr>");
		}
		document.write("</table>")
	</script>
</body>
</html>

 


3.부서별로 sal의 최소 값을 구하는데, 30번 부서의 sal 최소값 보다 큰것을 구하시오. 

select deptno, min(sal) from emp group by deptno 
having min(sal) > (select min(sal) from emp where deptno = 30);

select deptno, sal from emp where sal >(select min(sal) from emp where deptno = 30)
and(deptno, sal) in(select deptno,min(sal) from emp group by deptno);

 


4.삼각형및 사각형의 넓이를 구하는 프로그래밍을 IoC 컨테이너를 이용하여 프로그래밍 하시오.

 

 

======================첫번째구현방법========================

1.메인파일

2.가로세로 사각삼각 넓이 변수파일

3.값넣는 IoC xml파일

 

[applicationCTX.xml]
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

	<bean id="trirec" class="com.javac.ex.TriRec">
		<property name="width">
			<value>3</value>
		</property>
		<property name="height">
			<value>4</value>
		</property>
	</bean>
</beans>
[MainClass.java]
package com.javac.ex;

import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;

public class MainClass {

	public static void main(String[] args) {
		String configLocation = "classpath:applicationCTX.xml";
		AbstractApplicationContext ctx = new GenericXmlApplicationContext(configLocation);
		TriRec trirec = ctx.getBean("trirec", TriRec.class);
		trirec.TriRecArea();
		ctx.close();
	}
}
[TriRec.java]
package com.javac.ex;

public class TriRec {
	private double width;
	private double height;
	private double triArea;
	private double recArea;


	public double getWidth() {
		return width;
	}

	public void setWidth(double width) {
		this.width = width;
	}

	public double getHeight() {
		return height;
	}

	public void setHeight(double height) {
		this.height = height;
	}

	public double getTriArea() {
		return triArea;
	}

	public void setTriArea(double triArea) {
		this.triArea = triArea;
	}

	public double getRecArea() {
		return recArea;
	}

	public void setRecArea(double recArea) {
		this.recArea = recArea;
	}

	public void TriRecArea() {
		triArea = width * height * 0.5;
		recArea = width * height;
		System.out.println("가로는 " + width);
		System.out.println("세로는 " + height);
		System.out.println("삼각형의 넓이는 : " + triArea);
		System.out.println("사각형의 넓이는 : " + recArea);

	}

}

 

================두번째 구현방법=================

1.메인파일

2.가로세로 변수파일(여기에 사각삼각넓이파일 생성)

3.사각삼각 넓이 변수 파일

4.값넣는 IoC xml파일

[MainClass.java]
package com.javalec.ex;

import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;

public class MainClass {

	public static void main(String[] args) {
		String configLocation = "classpath:applicationCTX.xml";
		
		AbstractApplicationContext ctx = new GenericXmlApplicationContext(configLocation);
		TriRec trirec = ctx.getBean("trirec", TriRec.class);
        				//이거 TriRec이라 써놓고 오류못잡아서 이틀걸림!! 우씨@!
                        //.xml에 id값이랑 맞춰주라고오오오!!!!!
		trirec.getTriRecArea();
		ctx.close();
	}
}
[TriRec.java]
package com.javalec.ex;

public class TriRec {
	private double width;
	private double height;
	private Area area;

	
	public Area getarea() {
		return area;
	}

	public void setArea(Area area) {
		this.area = area;
	}
	
	public void setWidth(double width) {
		this.width = width;
	}

	public void setHeight(double height) {
		this.height = height;
	}

	public void area() {
		area.area(width, height);
	}
	public void getTriRecArea() {
		System.out.println("가로는 " + width);
		System.out.println("세로는 " + height);
		area();
	}
}
[Area.java]
package com.javalec.ex;

public class Area {
	private double triArea;
	private double recArea;

	public void area(double width, double height) {
		triArea = width * height * 0.5;
		recArea = width * height;
		
		System.out.println("삼각형의 넓이는 : " + triArea);
		System.out.println("사각형의 넓이는 : " + recArea);
	}

	public void setTriArea(double triArea) {
		this.triArea = triArea;
	}

	public void setRecArea(double recArea) {
		this.recArea = recArea;
	}
}
[applicationCTX.xml]
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

	<bean id="area" class="com.javalec.ex.Area">	
	</bean>

	<bean id="trirec" class="com.javalec.ex.TriRec">
		<property name="width">
			<value>3</value>
		</property>
		<property name="height">
			<value>4</value>
		</property>
		<property name="area">
			<ref bean="area" />
		</property>
	</bean>
</beans>

728x90

'코딩 > 수업 정리' 카테고리의 다른 글

21.01.21 [042] Thu  (0) 2021.01.21
21.01.20 [041] Wed  (0) 2021.01.20
21.01.18 [039] Mon  (0) 2021.01.18
21.01.15 [038] Fri  (0) 2021.01.15
21.01.14 Thu [037]  (0) 2021.01.14

댓글