본문 바로가기

dev151

[JAVA] 매개변수(Parameter) , 인수(argument) 코딩을 하면서 매개변수란 말과 인수란 말을 혼용하여 사용하는데 어떻게 다른지 한번 확인해 보자. 현재 옵션을 바꿀수 있는 Option()이라는 매서드를 보면 Option() 안에 String color, String payMethod 를 넣을수 있는데 매개변수란 함수가 정의된 파라미터 String color, String payMethod 자체를 의미한다. 즉 Option의 매개변수는 String 변수 2개가 들어간다는 것이고 그렇다면 인수란? Option이란 매서드를 사용할때 직접 넣는 데이터를 의미한다. 즉 현재 Option이라는 메서드를 사용하여 "Gray", "CheckCard" 를 넣었는데 이 2개 데이터값이 인수이다. 정리하자면 매개변수란 함수를 정의할때 ()안에 넣어야할 데이터의 자료형을 의.. 2022. 5. 30.
[JAVA] 클래스 클래스란 ? 데이터 + 함수를 모아 놓은것. 1. 변수 ? : 하나의 데이터를 저장 할 수 있는 공간 2. 배열 ? : 같은 종류의 데이터를 하나로 저장 할 수 있는 공간 3. 구조체 ? : 서로 관련된 여러 데이터(종류 상관 없이)를 하나로 저장 할 수 있는 공간 4. 클래스 ? : 데이터와 함수의 결합(== 구조체 + 함수) -> 서로 관련있는 데이터와 함수를 묶어 놓은 것이 클래스 클래스 안에서 선언 위치에 따른 변수의 종류 1. 클래스 영역 : iv, cv(static 변수) 2. 메서드 영역 : lv(local Vailable) 변수의 종류 선언위치 생성시기 클래스 변수(cv) 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스 변수(iv) 인스턴스가 생성되었을 때 지역변수(lv) 클래스 영역 이.. 2022. 5. 30.
[JAVA] 변수 기본형 - boolean(1), char(2), byte(1), short(2), int(4), long(8), float(4), double(8) - 실제 값을 저장 참조형 - 기본형을 제외한 나머지(String, System 등 ) - 메모리 주소를 저장(4byte wor 8 byte) - Date today; // Date의 참조변수 today 선언 - today = new Date(); // today 에 Date객체의 주소를 저장 2022. 5. 30.
[JAVA] 객체 생성 클래스(설계도) 객체(제품) TV 설계도 TV 핸드폰 설계도 핸드폰 클래스 : 설계도라고 생각 하면된다. TV를 만들기 위해서는 설계도가 필요한데 설계도 안에는 TV에 필요한 기능, 속성 등 여러가지 속성들이 들어 있다고 생각 하면된다. 즉.. 아래보면 Tv 라는 클래스가 정의되어 있고, 가로,세로, 볼륨, 체널, 여러 기능들이 정의되어 있다. 하지만 클래스는 말그대로 설계도 일 뿐이고.. Tv를 사용하려면 Tv라는 객체를 생성해야 한다. 객체를 만들때는 new 라는 명령어를 통해서 생성한다. 객체를 생성하기 위해서는 new 라는 키워드를 사용해서 생성한다. 방법은 클래스(타입) 참조변수( 왼쪽에 있는 클래스의 참조변수) = new 생성자(): new : 인스턴스를 생성한다. 메모리에 공간을 할당해준다... 2022. 5. 29.
[JAVA] 생성자 맨날 까먹음,,,,...!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 부모를 상속한 자식의 생성자에는 super(); 가 첫줄에 생략되어 있지만 항상 실행된다. // 결과를 보면 //1번 부모로 부모를 생성할떄는 Parent p = new Parent(); 가장먼저 부모의 생성자가 실행되고, 모든 메서드들이 부모에서 정의한대로 실행된다. //goOut() 의경우 자식에서만 정의한 메서드이므로 부모는 사용하지 못함 //2번 Children c = new Children(); // 부모를 상속한 자식 클래스를 // 자식으로 생성 // 부모의 생성자가 실행되고 -> 자식의 생성자가 생성됨. // 자식에 존재하지 않은 clean()의 경우는 부모에서 정의된 clean() 함수가 사용되었음 // 인스턴스 변수와 메서드들은 -> 자식에서 정의한 대로 실행되었음 //3번 Parent .. 2022. 5. 28.
[Servlet] Servlet 특징2 URL 패턴 Servlet은 Lazy init()으로 : 늦은 초기화 loadOnStartup=1 --> 미리 초기화 하는것으로 숫자는 우선순위를 써주면된다. @WebServlet으로 우선순위 종류 URL MAPPING 매칭 URL 1 exact mapping /login/hello.do ~/login/hello.do 2 path mapping /login/* (/뒤로 뭐가와도됨) ~/login/ ~/login/hello ~/login/hello.do 3 extension mapping *.do (.do로 끝나는것만) ~/hi.do ~/hello.do 4 default mapping / (모든 주소와 맵핑) ~/ ~/hello.do ~/login/ ~/login/hello @WebServlet ==> S.. 2022. 5. 27.
[Servlet] Servlet 특징 Servlet을 생성할때는 클래스마다 URL 맵핑을 실시 하기 때문에 클래스를 많이 생성해야 한다. 또한 Servlet 클래스는 HttpServlet을 상속하고 init(), service(), destory() 3개의 매서드를 오버라이드 한다. init()의 경우는 처음 서블릿을 호출할때 실행되며, 사용자의 요청에 따라 처리되는 내용들은 service() 함수에서 실행된다. destory() 의 경우 해당 어플리케이션이 종료 되거나 서블릿이 종료될때 사용되어진다. /hello 를 호출하면 init() 메서드와 service() 메서드가 실행되는것을 확인할 수 있다. 그후 똑같이 /hello를 호출하면 처음 init()이 호출된 이후로 다시 실행되지 않고 service() 메서드만 호출되었다. 또한 코드.. 2022. 5. 27.
[Spring] Servlet의 발전과정을 탐구해보자 - 탐구단계 1단계 : MethodCall 클래스를 통해서 ModelController의 메서드를 실행시킨 후 출력한다. - 1. HashMap 객체를 생성 ( Controller의 작업 결과를 저장할 객체 생성) - 2. 실행할 메서드를 가지고 있는 Controller 객체를 생성한 후 메서드를 실행 * 매개변수로 처리결과를 저장할 MAP을 넣어준다. - 3. mc.main(map) 의 실행결과로 "txtView1" 를 리턴해주고, 처리결과는 map에 저장된다 * call by reference로 결과값이 map에 저장된다. - 4. render(map,viewName); 를 통해서 출력해준다. * map에는 처리결과가 저장되어있고, viewName에는 출력페이지 이름이 저장되어 있다. * Scanner를 통해서 .. 2022. 5. 22.
[Spring] Private한 메서드 호출 자바의 접근 제어자 Private default protect public 같은클래스 O O O O 같은패키지 O O O 자손클래스 O O 전체 O 자바의 접근 제어자에 따르면 현재 PrivateMethodCall 클래스에서 Hello 클래스의 main() 메서드를 실행 할 수 없어야 한다. 하지만 Private한메서드를 호출할 수 있는 방법이 있다. 그방법은 다음과 같다. 1. Class 객체의 forName(String str) 를 통해서 Class 객체를 생성해준다. // Class helloClass = Class.forName(~); 2. 생성된 객체를 통해서 Hello 객체를 생성해 준다. // Hello hello2 = (Hello)helloClass.newInstance() 3. 1에서 생.. 2022. 5. 22.
[Spring] MVC 패턴 - 관심사의 분리 - 현재 getYoil 을보면 3부분으로 나뉘어 져있다 1. 입력 / 2. 작업 / 3. 출력 이각 부분을 관심사라고 한다. => 즉 해야할 작업 main() -> 3개의 관심사를 가지고 있다. ""OOP 5대 설계의 원칙 SOILD 1. SRP(단일 책임의 원칙) ==> 하나의 메서드는 하나의 책임만 가진다. 책임 == 관심사 "" 즉 main()은 관심사를 분리해야 한다. 분리 1. 관심사의 분리 2. 변하는것과 (자주)변하지 않는 것의 분리(Common code/ Uncommon code) 3. 공통 코드의 분리(중복 코드) 1) 입력 - Request.getParameter 2) 처리 3) 출력 2) 처리 3) 출력 1) 입력 - Request.getParameter 2) 처리 3) 출력 ===>.. 2022. 5. 22.