1 / 44

Java 실습

Java 실습. 사칙연산. 다음의 코드를 입력하고 실행시켜 보자 . public class SampleD2L3 { public static void main(String args[]) { System.out.println(1 + 1); System.out.println(10 - 3); System.out.println(6 * 5); System.out.println(20 / 2); } }. 연습.

jalena
Download Presentation

Java 실습

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java 실습

  2. 사칙연산 • 다음의 코드를 입력하고 실행시켜 보자. public class SampleD2L3 { public static void main(String args[]) { System.out.println(1 + 1); System.out.println(10 - 3); System.out.println(6 * 5); System.out.println(20 / 2); } }

  3. 연습 • 다음 연산을 하고 결과를 화면에 표시하는 프로그램을 작성하라. 단, 클래스 이름은 ExerD2L3라 하라. • 10 + 5 • 3  8 • 150  5 • 5120 - 650

  4. 문자열 연결 : + • 다음의 코드를 입력하고 실행시켜 보자 public class SampleD2L4 { public static void main(String args[]) { System.out.println("abc"); System.out.println("def"); System.out.println("abc" + "def"); } }

  5. 연습 • ‘내 이름은 ‘이라는 문자열과 ‘O O O입니다.’라는 문자열을 ‘+’를 이용하여 연결하여 화면에 출력하는 프로그램을 작성하라.

  6. 변수 • 변수명으로 대소문자는 구분됨 예) intA, INTA • 예약어는 변수로 사용할 수 없음 예) public, static, class, void 등 • 데이터 형 • byte: 8비트 정수 -float: 32비트 부동소수점 • short: 16비트 정수 -double: 64비트 부동소수점 • int: 32비트 정수 -char: Unicode문자(16비트) • long: 64비트 정수 -boolean: 1비트

  7. 변수의 사용 • 다음 코드를 입력하고 실행시켜 보자. public class SampleD2L5 { public static void main(String args[]) { // 변수 선언 int intA; int intB; char chrA; // 변수에 값을 대입 intA = 10; intB = 2; chrA = 'a'; // 콘솔 상에 메시지 표시 System.out.println("intA에는" + intA + "가 들어가 있습니다"); System.out.println("intB에는" + intB + "가 들어가 있습니다"); System.out.println("chrA에는" + chrA + "가 들어가 있습니다"); System.out.println("intA + intB = " + (intA + intB)); System.out.println("intA - intB = " + (intA - intB)); } }

  8. 연습 • Int 형의 변수 intX와 char 형의 변수 charY를 선언하여 적당한 값을 대입한 뒤 화면에 출력하는 프로그램을 작성하라.

  9. 객체지향 프로그래밍 • 클래스 • 객체의 설계도 • 해당 객체가 어떤 성질(=필드)과 기능(=메소드)을 가지고 있는지 자세하게 정의 • 예) • 옷본: 클래스 • 색 및 소재가 다른 각각의 정장: 객체 • 자바 API • 프로그램 작성시 자주 이용되는 기능들이 클래스 형태로 내장되어 있음

  10. 객체 참고형 변수 • 일반 데이터 형(int, char 등)의 변수처럼 사용 가능 • 형식 • 형 이름 (=클래스 이름) 변수명; • 예) String strMessage;

  11. 객체의 사용 • 다음 프로그램을 입력하고 수행시켜보라 public class SampleD3L1 { public static void main(String args[]) { String strMessage; strMessage = "String 클래스를 사용한 메시지"; System.out.println(strMessage); } }

  12. 연습 • “Java, 정말 재미있다!”라는 메시지를 대입한 String 클래스의 객체를 작성하여 이것을 화면상에 표시하는 프로그램을 작성하라.

  13. 변수 안의 문자 길이를 세는 메소드 • String 클래스의 length() 메소드 • 다음 코드를 입력하여 수행시켜 보라. public class SampleD3L2 { public static void main(String args[]) { String strMessage ; strMessage = "String 클래스를 사용한 메시지"; System.out.println(strMessage); System.out.println("strMessage에는" + strMessage.length() + "개의 문자가 포함되어 있습니다."); } }

  14. 연습 • String 클래스형 변수를 myMessage라는 이름으로 선언한 후 “클래스는 필드와 메소드를 가지고 있습니다.”라는 문자열을 대입하라. 아울러 해당 문자열을 화면에 출력하고 문자열의 길이를 출력하는 프로그램을 작성하라.

  15. toUpperCase 메소드 • 원래 문자열 중 소문자를 대문자로 변환하여주는 String 클래스의 메소드 public class SampleD3L3 { public static void main(String args[]) { String strMessage ; strMessage = "abcdefg"; System.out.println("strMessage에는" + strMessage + "라는 문자열이 들어 있습니다"); System.out.println("strMessage의 내용을 대문자로 변환하면," + strMessage.toUpperCase() + "가 됩니다."); } }

  16. 연습 • 당신의 이름을 알파벳 소문자로 String 클래스의 변수에 저장한 후 대문자로 변환하여 출력해주는 프로그램을 작성하시오.

  17. 클래스 메소드 및 인스턴스 메소드 • 인스턴스 메소드 • 클래스의 객체를 생성하고 이 객체를 통해 메소드를 호출하는 방식 • 클래스 메소드 • 클래스의 인스턴스를 생성하지 않고 ‘클래스이름.메소드이름’의 형태로 메소드를 호출하는 방식 예) System.out.println(“-5의 절대치는”+ Math.abs(-5) + “입니다.”);

  18. 절대치 표시 프로그램 • 다음 코드를 입력하고 수행시켜 보라 public class SampleD3L4 { public static void main(String args[]) { System.out.println("-5의 절대치는" + Math.abs(-5) + “이다."); } }

  19. 연습 • 다음 값의 절대치를 구하여 화면에 출력하는 프로그램을 작성하라 • -27.8 • -999 • -23670 • -6.12345 • -169785318

  20. Constructor 방식의 인스턴스 생성 • 클래스의 인스턴스를 생성하기 위해 사용하는 특별한 메소드 • = 기호를 사용하지 않고 인스턴스를 생성 • 형식 • new 클래스 이름 (인자-필요할 경우 적음) 예) String myStr = new String(“AAA”)’;

  21. Math 클래스의 다른 메소드 • Math.sqrt(수치): 평방근 • Math.pow(a, b): a의 b승 • Math.round(수치): 주어진 인자에 제일 가까운 정수를 반환

  22. 연습 • Math 클래스의 메소드를 사용하여 다음을 계산하여 출력하는 프로그램을 작성하라. • 64의 평방근 • 14의 제곱 • 20의 평방근 • 68.254의 가장 가까운 정수치 • 3의 칠승

  23. 패키지 • 자바 클래스를 넣어 두는 것 • 서로 관련된 클래스를 하나의 패키지에 담음 • 클래스 이름의 중복 가능성을 방지 예) peternorton.clsFoo, global.clsFoo 패키지 이름 클래스 이름

  24. 패키지의 사용 • import java.io.BufferedReader; • import java.io.*; • java.lang에 속하는 클래스를 사용할 때는 import 문으로 선언하지 않아도 됨  System 클래스, String 클래스, Math 클래스

  25. 인사말 프로그램 • 다음 프로그램을 입력하고 수행시켜 보라. // 클래스 로드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class SampleD4L1 { public static void main(String args[]) { 콘솔 상에서 키보드로 문자 입력 // 입력 데이터를 읽어 들이는 객체를 생성 BufferedReader myReader = new BufferedReader(new InputStreamReader(System.in), 1); try{ // 이름 입력을 요구한다 System.out.println("이름을 입력해 주십시오 :"); // String 클래스형의 변수를 선언하고, 읽어 들인 데이터를 대입 String myString = myReader.readLine(); // 메시지를 연결하여 표시 System.out.println(myString + "씨, 안녕하세요!"); // 에러 처리 블록 }catch (IOException e) { } } }

  26. 연습 • ‘좋아하는 음식은 무엇입니까?’라는 메시지를 표시하여 사용자로부터 입력을 요구한 후, 입력된 데이터를 가지고 ‘당신이 좋아하는 음식은 XXX죠?’라는 메시지를 표시하는 프로그램을 작성하라. 단, XXX에는 사용자가 입력한 데이터를 표시하라.

  27. 예외 • 예외란? • 예상치 못한 에러 예) • 열려는 파일이 지정한 디랙토리에 부재 • 수를 0으로 나누기 • 입출력 시스템에 문제 발생 • 예외 클래스로 객체를 생성하여 예외를 처리

  28. 예외처리 • 발생 가능성이 있는 예외상태에 대하여 처리를 마련해 두는 것 • 형태 try { 예외를 발생시킬 가능성이 있는 문장들 . . . } catch (발생할_가능성이_있는_예외클래스 객체명) { 예외를 처리해주는 문장들 }

  29. 예외 클래스 • 자바 API에 포함됨 • 어떠한 메소드를 부르면 어떠한 예외가 발생하는 지 API 레퍼런스의 끝부분에 명기되어 있음

  30. Integer 클래스의 parseInt 메소드 • String 형의 값을 int 형으로 변환 예) int intA = Integer.parseInt(myString);

  31. 덧셈 프로그램 • 다음 코드를 입력하고 수행시켜 보라 import java.io.*; //패키지를 한꺼번에 로드 public class SampleD4L2 { public static void main(String args[]) { //입력 데이터를 읽어들이기 위한 객체 생성 BufferedReader myReader = new BufferedReader(new InputStreamReader(System.in), 1); try{ System.out.println("A+B 의 덧셈을 합니다."); System.out.println("A의 값을 입력해 주십시오"); String myString = myReader.readLine(); //String형으로 읽어들인 값을 형 변환하여 int형의 변수에 대입 int intA = Integer.parseInt(myString); System.out.println("B의 값을 입력해 주십시오"); myString = myReader.readLine(); int intB = Integer.parseInt(myString); int intAnswer = intA + intB; System.out.println("A + B를 계산하면" + intAnswer + "가 됩니다"); //에러 처리 블록 }catch (IOException e) { System.out.println("에러가 발생했습니다"); } } }

  32. 연습 • 두 수를 입력 받아 곱셈을 하는 프로그램을 작성하라

  33. Double 클래스의 parseDouble 메소드 • String 형의 값을 double 형으로 변환 예) double dblWeight = Double.parseDouble(myString);

  34. 여러 종류의 예외상황에 대한 처리 • 형태 try { 예외를 발생시킬 가능성이 있는 문장들 . . . } catch (발생할_가능성이_있는_예외클래스1 객체명) { 예외를 처리해주는 문장들 } catch (발생할_가능성이_있는_예외클래스2 객체명) { 예외를 처리해주는 문장들 } . . . . . .(필요한 만큼 반복)

  35. BMI(Body Mass Index)의 계산 • BMI = 체중 / 신장의 제곱 * 10000 • 22: 표준 • > 22: 비만형 • < 22: 마른형 • 다음 프로그램을 입력하고 수행하라

  36. BMI import java.io.* ; public class SampleD4L3 { public static void main(String args[]) { BufferedReader myReader = new BufferedReader( new InputStreamReader(System.in), 1) ; try { System.out.println("당신의 BMI를 계산합니다.") ; System.out.println("신장을 입력해 주십시오.") ; String myString = myReader.readLine( ) ; //String형으로 읽어들인 값을 double형의 변수에 대입 double dblHeight = Double.parseDouble(myString) ; System.out.println("체중을 입력해 주십시오.") ; myString = myReader.readLine ( ) ; double dblWeight = Double.parseDouble(myString) ; long lngAnswer = Math.round(dblWeight / Math.pow(dblHeight , 2) * 10000) ; System.out.println("당신의 BMI는" + lngAnswer + "입니다.") ; System.out.println(" BMI가 22를 넘으면 비만기입니다."); //에러 처리 블록(IO 에러) }catch (IOException e) { System.out.println("IO 에러가 발생했습니다.") ; //에러 처리 블록(NumberFormat 에러) }catch (NumberFormatException ne) { System.out.println("입력된 수치가 올바르지 않은 것 같습니다.") ; } } }

  37. 연습 • 앞의 프로그램을 기초로 신장을 입력 받아 표준 체중을 구하는 프로그램을 작성하라. • 단, 수식은 22 * 신장의 제곱 / 10000

  38. 배열의 사용 • 선언 형식 • 형_이름 변수_이름[]; • 배열 인스턴스 생성 형식 • 변수_이름 = new 형_이름[요소 수] • 배열도 일종의 객체로 간주 예) String myString[]; myString [ ] = new String [5]; • 혹은 한꺼번에 String myString [ ] = new String [5];

  39. 배열 및 for 루프 //메인 루틴 for (intCounter = 0 ; intCounter<=1 ; intCounter++) { //문제 표시 System.out.println(strQuestion[intCounter]) ; //답 입력을 재촉 System.out.println("답은? :") ; //입력된 값을 읽어 들여 변수에 대입 String myString = myReader.readLine( ) ; int myAnswer = Integer.parseInt (myString) ; //정오 진단 if (myAnswer == intAnswer[intCounter]) System.out.println("축하합니다! 정답입니다.") ; else System.out.println("유감입니다! 답은" + intAnswer[intCounter] + "입니다.") ; } //에러 처리 블록 }catch (IOException e) { System.out.println("IO에러가 발생했습니다.") ; }catch (NumberFormatException ne) { System.out.println("입력된 수치가 올바르지 않은 것 같습니다.") ; } } } import java.io.* ; public class SampleD5L3 { public static void main(String args[]) { //입력 데이터를 읽어들이기 위한 객체 생성 BufferedReader myReader = new BufferedReader( new InputStreamReader(System.in)) ; try{ //문제·해답용 배열의 선언과 실체화 String strQuestion[] = new String[2] ; int intAnswer[] = new int[2] ; //문제와 답을 배열로 대입 strQuestion [0] ="25 / 5 = ?"; intAnswer[0] = 5; strQuestion [1] ="10 X 3 = ?"; intAnswer[1] = 30; //초기 메시지 표시 System.out.println(“*** 계산 퀴즈 ***") ; System.out.println("문제에 답하시오.") ; //카운터 변수의 선언과 초기화 int intCounter = 0 ;

  40. 연습 • 다음과 같은 계산 퀴즈 프로그램을 작성하라. • 문제: 10*50 / 정답: 500 • 문제: 21 – 7 / 정답: 14 • 문제: 360  6 / 정답: 60

  41. Math 클래스의 random 메소드 • 0.0 ~ 1.0 범위의 double 형의 임의의 값을 반환 예) double dblAnswer = Math.random() * 10 • 0 ~ 9 사이의 난수 생성

  42. 자바의 형 변환 • 형식 (변환할 형의 이름) 변환할 데이터 예) (int) 3.54 (int) dblAnswer * (int)의 경우 소수부분은 절사

  43. 연습 • 컴퓨터가 난수를 생성하면 사람이 그 난수를 맞추는 프로그램을 작성하시오.

  44. //클래스를 한꺼번에 로드 import java.io.* ; public class SampleD5L2 { public static void main(String args[]) { //입력 데이터를 읽어들이기 위한 객체 생성 BufferedReader myReader = new BufferedReader( new InputStreamReader(System.in) , 1) ; try{ //초기 메시지표시 System.out.println("넘버 게임을 시작!") ; System.out.println("컴퓨터가 번호를 선택했슴.") ; //난수를 작성 double dblAnswer = Math.random() * 10; //int형에 형변환 int intAnswer = (int)dblAnswer; //수치 입력을 요구 System.out.println("번호를 맞혀 보세요 (0 9)." ); System.out.println("당신의 예상은:") ; //컴퓨터가 선택한 값을 읽어 들여, 변수에 대입 String myString = myReader.readLine( ) ; int intNumber = Integer.parseInt(myString) ; //시비 판정 if (intNumber == intAnswer) System.out.println("축하합니다! 정답입니다.") ; else System.out.println( "유감! 컴퓨터의 숫자는" + intAnswer ) ; //에러 처리 블록 }catch (IOException e) { System.out.println("IO 에러가 발생했습니다.") ; } catch (NumberFormatException ne) { System.out.println("입력된 수치가 틀립니다.") ; } } } 답

More Related