본문 바로가기

   
Programming/Java

4일차!

반응형
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 찾아보기


반응형