반응형
httpd 어떠한 문서를 서버로 보낼때 어떠한 규칙으로 보내야할지 정해져 있는 규약
브라우저가(클라이언트)가 서버에 요청을 보낼때 어떠한 형태의 문서로 보낼지 규약이 되어 있는것.
요청메시지, 응답 메시지 2가지로 되어 있음 웹서버 = 응답된 메시지를 내보내는것을 잘한다.
지속적으로 주고받는 과정
jsp -> 응답 메시지를 만들어서 내려보내는 것을 개발자가 하는 역활
// 사용자 정보를 database에 저장합니다. insert 어떤 회원이 삭제 되야 하는지 알아야 하기때문에 매개 변수를 전달해야함
public static void insert (UserId){
insert~~...어쩌구 저쩌구
}
// 지정된 번호의 사용자 정보를 가져옵니다. 사용자정보를 가져와야 되기때문에 숫자를 전달하면 리턴된 값을 전달해 줄수 있다.
public static int SelectView( int infor){
사용자 정보를 가져온다.....
return;
}
// 지정된 번호의 사용자 정보를 삭제합니다.
public static delete ( int infoD){
지정된 번호 사용자 번호 삭제기 때문에 번호를 보내서 삭제해야함
}
// 모든 사용자정보를 삭제합니다.
public static AllDelete(){
지정할 필요없이 모두 삭제가능
}
■실습
package oop1;
public class MethodDemo1 {
public static void main(String[] args){
//method(메소드) -> 반복 적으로 작업을 할때 필요한것(기능) 하나의 블록내에 구현해놓고 이름을 붙여놓는다. (자주사용하는 것을 메소드로 만들도록 한다.
//main -> jvm 이 실행시킨다. java = jvm = main 메소드를 찾아서 실행 시킨다.
//main 트리거 시작점이 되는 메소드를 적어준다.
m1();
m2();
}
/**
* 메소드는 전통적으로 이름옆에 ()가 붙어 있다.
* 이름() {
* 수행문1;
* 수행문2;
* }
*
* 이름();
* main에서 호출 가능 -> 다른 메소드에서 다른메소드 호출가능
*/
public static void m1(){
System.out.println( "메소드가 실행되었습니다." );
System.out.println( "다른곳에서 m1(); 이런식으로 호출했나 봅니다.");
}
public static void m2(){
System.out.println( "메소드2가 실행되었습니다." );
for( int i=1; i<20; i++){
System.out.print(i+ ", ");
}
m3();
}
public static void m3(){
//m3 메소드를 프로그램 마무리를 구현 하면 메소드별로 불르지 않아도 한번만 불를수 있기 때문에 좋은 방법
//프로그램은 반복하는 것을 좋아하지 않는다. DRY
System.out.println( "회원가입 완료" );
}
}
package oop1;
import java.util.Scanner;
public class MethodDemo2 {
public static void main(String[] args){
//multiple();
//매개변수를 1개이상이면 프로그램을 잘짯다고 할수 없다.
//매개변수를 최소화 시켜서 작업을 진행 하도록 한다.
Scanner sc = new Scanner(System.in);
String name, email = null;
int age = 0;
System.out.println( "회원가입을 위해서 정보를 작성해주세요" );
System.out.print( "이름을 입력해 주세요 : " );
name = sc.nextLine();
System.out.print( "나이를 입력해 주세요 : " );
age = sc.nextInt();
System.out.print( "이메일을 입력해 주세요 : " );
email = sc.nextLine();
email = sc.nextLine();
System.out.println( "정상적으로 입력 되었습니다." );
viewInfo(name, age, email);
sc.close();
}
/**
* 메소드이름(타입1, 변수1, 타입2, 변수2)
*/
public static void multiple(){
Scanner sc = new Scanner(System.in);
System.out.print( "살고싶으면 답을 입력 해라 : " );
System.out.print( "1. int 는 문자열이다" );
System.out.print( "2. int 는 소수점이다" );
System.out.print( "3. int 는 무한대이다." );
System.out.print( "4. int 는 정수이다." );
System.out.print( "답 입력 : " );
int Anser = sc.nextInt();
if(Anser == 4){
System.out.println( "생존@!" );
} else{
System.out.println( "다이" );
}
sc.close();
}
public static void viewInfo(String username, int age, String email){
System.out.println( "당신의 이름은 " + username + "입니다." );
System.out.println( "당신의 나이는 " + age + "입니다." );
System.out.println( "당신의 이메일은 " + email + "입니다." );
System.out.println( "축하합니다. 정상적으로 가입되었습니다.");
}
}
package oop1;
import java.util.Scanner;
public class MethodDemo3 {
public static void main(String[] args){
// 구구단을 출력하는 메소드를 정의하세요
//일단을 출력할지는 매개변수로 값을 전달 받으세요
int num = 0;
Scanner sc = new Scanner(System.in);
System.out.print( "구구단입니다. 몇단을 출력하시겠나요? : " );
num = sc.nextInt();
Multiplication(num);
sc.close();
}
public static void Multiplication( int num){
for( int i=1; i<=9; i++){
System.out.println(num + " * " + (i) + " = " + (num*i));
}
}
}
package oop1;
import java.util.Scanner;;
public class MethoDemo4 {
public static void main(String[] args){
int x = sum(3,4);
System.out.println(x);
Scanner sc = new Scanner(System.in);
Calculators(1,2);
Calculators(1.3,3);
Calculators(3,2.7);
}
/**
* 자바에서는 똑같은 메소드를 재정의 할수 있다. 매개변수가 다르기만 한다면 똑같은 이름으로 얼마든지 만들수 있다.
* 자바 철학 : 유사한 작업은 일관된 이름으로 사용하라.
* 자바는 매개 변수가 갯수가 다르거나 타입이 다르다면 오보로딩 언제든 생성 가능
* 리턴 타입이 다르다면 오버로딩 사용불가
* @param x
* @param y
*/
public static void Calculators( int x, int y){
System.out.println();
}
public static void Calculators( int x, double y){
System.out.println( "정수 1개 실수 1개를 전달 받았습니다." );
}
public static void Calculators( double x, int y){
System.out.println( "실수 한개 정수 한개를 전달 받았습니다.");
}
public static void Calculators( int x, int y, int z){
System.out.println( "정수3개를 전달 받았습니다." );
}
/**
* return 메소드
* @param x
* @param y
* @return
*/
public static int sum( int x, int y){
int result = x + y;
return result;
}
}
package oop1;
public class MethodDemo6 {
// 현재 시간을 반환해주는 메소드
public static long currentTime() {
long time = System.currentTimeMillis();
return time;
}
public static String getFullname(String firstName, String lastName){
String name = firstName + " , " + lastName;
return name;
}
/*
* 국어, 수학, 영어 성적을 전달받아서 총점을 반환하는 메소드
* Overall score Language, English, Meth
*/
public static int OverallScore( int score, int language, int english, int meth){
int result = score + language + english + meth;
return result;
}
/*
* 국어, 수학, 영어 성적을 전달받아서 평균을 반환하는 메소드
* Average
*/
public static double Average( int score, int language, int english, int meth){
double result = OverallScore(score, language, english, meth) / 4.0;
return result;
}
/**
* 국어, 수학, 영어점수가 들어있는 배열을 전달 받아서 총점을 반환 하는 메소드
*/
public static int getTotal( int[] some){
int sum = 0;
for( int i=0; i<= 2; i++){
sum += some[i];
System.out.println(some[i]);
}
return sum;
}
public static void main(String[] args){
long ct = currentTime();
System.out.println(ct);
String result = getFullname( "김", "종현" );
System.out.println(result);
int sum = OverallScore(70, 60, 80, 90);
System.out.println( "총점 : " + sum);
double avg = Average(77, 63, 84, 97);
System.out.println( "평균 : " + avg);
int[] num = {10,20,30};
int total = getTotal(num);
System.out.println(total);
}
}
package oop1;
import java.util.Arrays;
public class MethodDemo6 {
public static void main(String[] args){
//명령행 인자 java oop1.MethodDemo6 aaa bbb ccc 이문구의 aaa bbb ccc가 args에 들어간다.
System.out.println(Arrays.toString(args));
}
}
package oop2;
//Calculator 설계도
public class Calculator {
/**
* 지정된 두 수의 합이 계산해서 화면에 표십니다.
* @param a 첫번째 수
* @param b 두번째 수
*/
public void sum( int a, int b){
int result = a + b;
System.out.println(a + " + " + b + " = " + result);
}
/**
* 지정된 두 수의 차를 계산해서 화면에 표시합니다.
* @param a
* @param b
*/
public void minus( int a, int b){
int result = a - b;
System.out.println(a + " - " + b + " = " + result);
}
}
package oop2;
public class CalculatorDemo {
public static void main(String[] args){
//설계도를 사용하기 위해 new로 선언한후 메모리에 로드한뒤 c라는 변수에 담아놓았다.
Calculator c = new Calculator();
c.sum(10, 20);
c.minus(20, 10);
c = null;
System.out.println(c);
//결과 : oop2.Calculator@19e0bfd -> @뒤는 해쉬코드 -> 주민등록번호 같은것 객체가 하나만들어지면 객체의 고유한 번호 해쉬코드 랜덤으로 부여됨
//실제는 c.toString(); 해쉬코드를 16진수로 환산환 결과가 출력 된다.
//실제 내부구조는 Calculator라는 객체가 들어있지 않고 해당 객체의 주소값
//c에는 객체가 어디에 들어있는지에 대한 주소만 들어잇다 실제 객체는 메모리에 생성 되어 있음.
//절대 메모리 객체 주소를 알려주지 않는다. 하드웨어까지 접근하여 다른짓을 할까봐
//jvm 자체가 c로 만들어져 있다.
//객체를 애기하는것 bean object instens
//아무도 참조하지 않는 객체들을 jvm이 청소한다.
Calculator c1 = new Calculator();
Calculator c2 = new Calculator();
Calculator c3 = c2;
System.out.println( "c1이 바라보는 객체 : " +c1);
System.out.println( "c2이 바라보는 객체 : " +c2);
System.out.println( "c3이 바라보는 객체 : " +c3);
c1 = null; //c1이 가지고 있는 주소값을 아무것도 아닌값으로 변경
c1.sum(3, 4);
}
}
1. 클래스명 : Phone
2. 기능
문자보내기
-전달받은 메시지를 전송하는 기능
(구현은 System.out.println을 사용해서 발송완료했다는 표시만 화면에 표시합니다.
전화걸기
- 전화걸기 기능
(구현은 System.out.println을 사용해서 전화가 연결되었다는 표시만 화면에 표시합니다.)
전화끊기
- 전화끊기 기능
(구현은 System.out.println을 사용해서 전화가 끊겼다는 표시만 화면에 표시합니다.)
package oop2;
public class Phone {
public void MessageSend(String message){
String send = message;
System.out.println( "내용 : " + message);
System.out.println( "문자전송이 완료 되었습니다." );
}
public void Connect(){
System.out.println( "전화를 겁니다." );
System.out.println( "rrrrr....");
System.out.println( "rrrr....");
System.out.println( "rrr....");
System.out.println( "전화가 연결 되었습니다." );
}
public void Disconnect(){
System.out.println( "내일 몇시에 보냐?" );
System.out.println( "5시에보자" );
System.out.println( "ㅇㅋ 끊어" );
System.out.println( "전화 연결 종료 되었습니다." );
}
}
package oop2;
public class Main {
public static void main(String[] args){
Phone p = new Phone();
p.MessageSend( "야 잘지내냐? 문자확인 하면 답장좀" );
p.Connect();
p.Disconnect();
}
}
과제
1. MethodDemo9를 만드세요
(static으로 만들고 밑에서 main)
- 정수 두개를 전달받아서 순서를 바꿔 출력하는 기능(스왑)
- 숫자가 5개 들어있는 배열을 전달받아서 가장 큰 수를 출력하는 기능
2. Calculator를 곱셉 출력기능, 나눗셈 출력기능을 추가하세요
- 두수를 입력받아서 곱셈 결과를 출력합니다.
- 두수를 입력받아서 나눗셈 결과를 출력합니다.
3. HTTPS, SSL 찾아보기
반응형