Dev/Java

[java] 자바 공부 시작

창문닦이 2019. 1. 21. 18:47

 

class Test1{

           //class이름: 반드시 대문자로 시작해야함. 두번째 단어의 첫글자도 대문자 TestOne

           //메소드(method) 명령어라고 생각해두세요. 안에 부분

           public static void main(String[] args) {

           //public : 접근지정자(모두 접근 가능)

           //static : 자신이 알아서 메모리에 올라감

           //void : return-반환값이 없다. 줄거없음. 실행하면 . 자료형 8 하나만.

           //public static void  빼먹으면 에러남

           //main : 메소드명 - method명은 반드시 소문자로 시작해야함. 두번째 단어의 첫글자는 무조건 대문자. testOne

           //String[] args : 매개변수. 밖에서 할당하는 변수값. string 문자열

           // \n 엔터

           // System.out.println(); 엔터

                     System.out.println("자바 첫시간!");

                     System.out.println("오늘은 수요일!!");

                     System.out.println();

                     System.out.println("나보이냐?\n");

}

 

실행 결과 

 

 

class Test2 {

           public static void main(String[] args) {

           //args = argument

           //static 내가 따로 손을 대지않아도 자동으로 메모리상에 올라가기 때문에 실행가능 - 모든 프로그램은 메모리에 올라가야 실행이 가능.

           //이걸 사용하지 않는다면 별도의 작업을 해줘야

           //정수형 변수 integer. 반드시 소문자로 시작(정석). 두번째단어의 첫글자는 대문자 numOne. 상수일때만 NUM 전부 대문자로 사용

/*

               변수선언. 빈그릇만 생긴것. 초기값을 설정하지 않으면 쓰레기값만 들어있다.

               int num1;

               int num2;

               int 저장가능범위 : -21~21 범위 초과시 long으로 지정해야  

               범위를 초과하면 런타임 에러 발생. 코딩상의 문제가 아니라 로직상의 에러

                             

               변수 초기화.(초기값 설정)

               num1 = 20;

               num2 = 3;

*/

                     //자료형 : int

                     int num1 = 20;

                     int num2 = 3;

                     int num3;

                     int num4;//초기값설정 안했으므로 쓰레기값이 들어있다

                    

                     //System.out.println(num3); //작성 쓰레기값만 들어있어서 오류

                     num3 = num1 + num2 ;

                     num4 = num1 - num2 ;

                    

                     System.out.println("num1 : " + num1);

                     System.out.println("num2 : " + num2);              

                     System.out.println(num1 + "+" + num2 +"= " + num3 );

                     System.out.println(num1 + "-" + num2 +"= " + num4 );

                     System.out.print("랄라\n\n"); //print 매개변수가 반드시 필요. println 없어도 컴파일 가능

                    

                     //format

                     System.out.printf("%d+%d=%d\n",num1,num2,num3);

                     System.out.printf("%d-%d=%d\n",num1,num2,num4);

           }

}

실행 결과

 

 

class Test3  {

          

           public static void main(String[] args) {

                     //main 메소드는 프로그램의 시작을 의미

                     ////원의 면적과 둘레를 구하기 위해 변수 선언. 초기값 설정 안해서 쓰레기값 들어있음

                     int r = 10;

                     float area;

                     float length;

                     //float area, length; 한줄로 선언 가능

                     // 실수형 : float(100자리까지 가능), double( 이상도 저장 가능) - 저장가능범위가 더블이 두배!

                     area = r * r * 3.14f; // float으로 인식하라고 f붙여줌!

                     length = 2 * r * (float)3.14; // float으로 인식하라고 (float)붙여줌!

                    

                     //System.out.println(area);

                     System.out.printf("반지름: %d, 넓이: %f\n",r, area); // %d 정수 %f 플롯 %g 더블

                     //실수가 표시할 있는 이진수는 6. 부호표시로 하나 소진해서 다섯개 표시

                     //System.out.println(length);

                     System.out.printf("반지름: %d, 둘레: %.2f\n",r, length);                

                     //float 소수점길이 조정하는거는 printf에서만 가능함 println에서는 안됨

                     System.out.println("반지름: " + r + ", 넓이: " + area + ", 둘레: " + length );

/*     

               String 클래스. 문자열. "" 묶어줘야함

               char 자료형. 문자. '' 묶어줘야함

               기본자료형은 8 존재. boolean char byte short int long float double

               참조자료형 -> 클래스.  배열, 클래스, 인터페이스 등이 있습니다.

               값이 아닌 그에 대한 참조 주소를 가지고 있습니다

*/

           }

}

실행 결과

 

 

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.IOException;

//import java.io.*;

/*

        import C언어에서의 #include 같다.

        C:\Program Files\Java\jdk1.8.0_191\src.zip\java package 위치를 알려줘야 해서 import하는 거라고 이해!

        import java.io.* - io패키지에 있는걸 모두 가져와. 메모리낭비. 되도록이면 하나씩 적어주는게 좋음

        io input output 관련된 패키지

        이클립스 사용할 알아서 툴이 import 시켜줌. 굳이 외울 필요는 없음

*/

class Test4 {

           public static void main(String[] args) throws IOException {

/*     

        오류가 생겼을때 뺀다.

        throws 키워드는 실행시간에 예외가 발생했을 경우, 해당 예외를 직접처리하지 않고 다른 곳에서 처리하도록 예외를 던지겠다

*/

           BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

/*     

        BufferedReader class.

        System.in : 키보드로 입력한 1개의 문자 읽음.

        InputStreamReader : System.in 통해서 읽은 문자를 2byte 변경시킴. 10 '1' '0' 아니라 '10'으로 인식하게 해줌

        한쪽에서 들어온 데이터를 다른쪽으로 넘겨주는 역할을 하는게 브릿지클래스

        BufferedReader : 버퍼로 입력 받아 처리속도를 높임

         -> 만약 세가지가 없었다면 일일히 클래스를 선언해놔야 사용가능. 이미 api 등록되어 있다.  

        API : 사용설명서 개념. 여러 클래스와 메소드를 정리해놓음.

        링크 : https://docs.oracle.com/javase/8/docs/api/

       

        java > javalang > 패키지안에 String, System 있음. 사용빈도가 높은 것들은 메모리에 무조건 올려놓음

        매번 import 시키지않아도 바로 사용할 있도록!

*/

           int r;

           double area, length;

           System.out.println("반지름?"); //줄바꿈 prinfln. print 줄바꿈없음.

           r = Integer.parseInt(br.readLine());

/*     

        사용자가 입력하는 것을 읽어오는 명령어. 문자로 저장함. br.readLine();

        enter 아스키값이므로 br 들어있는 '10' enter값을 가져온다

        이걸 숫자형으로 변환하기 위해 사용하는 Integer.parseInt();

        클래스안엔 여러 method 존재. BufferedReader method 하나가 readLine .

*/

           area = r * r * 3.14f;  //자바는 실수형을 입력하면 double 세팅이 . 지금은 area double 선언해놔서 오류 안생김

           length = r * 2 * 3.14;

          

           System.out.printf("반지름: %d, 넓이: %g, 둘레: %g\n",

                     r, area, length);  //줄바꿈은 ',' '+' 뒤에서 해야 이어서 인식됨

           }

}

실행 결과

 

 

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.io.IOException;

class Test5 {

           //클래스는 기본적으로 접근지정자가 public - 누구나 접근 가능

           public static void main(String[] args) throws IOException {

                    

                     //선언부

                     BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

          

                     String name;

                     int kor, eng, mat, tot;

                    

                     //입력부

                     System.out.print("이름?"); //사용자가 입력. 수지

                     name = br.readLine();  // 두번째단어는 대문자!! readLine

                     // String으로 입력을 받고 반환값도 String 이어서 문제없음.

                    

                     System.out.print("국어?"); //50

                     kor = Integer.parseInt(br.readLine());

                     System.out.print("영어?"); //50

                     eng = Integer.parseInt(br.readLine());

                     System.out.print("수학?"); //50

                     mat = Integer.parseInt(br.readLine());

                    

                     //연산부

                     tot = kor + eng + mat;

                    

                     //출력부

                     System.out.printf("이름:%s, 국어:%d, 영어: %d, 수학: %d, 총점은 %d입니다.\n",name, kor, eng, mat, tot);

                      // string - '%s' 쓰려면 printf 써야함!

 

           // 항상 구조가 선언- 구조 입력 - 연산 - 출력 순대로 진행됨

           }

}

 

 실행 결과

 


 

'Dev > Java' 카테고리의 다른 글

[java] 배열, 달력만들기  (0) 2019.01.21
[java] for문, switch문  (0) 2019.01.21
[java] 반복문  (0) 2019.01.21
[java] 간단한 계산기 만들기  (0) 2019.01.21
[java] 기초  (2) 2019.01.21