블로그 이미지
stellaris

calendar

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

Notice

Tag

Recent Post

Recent Comment

Archive

'전체 글'에 해당되는 글 1

  1. 2019.12.30 자바 기초
2019. 12. 30. 15:51 Java

 

자바 코드의 구조

소드 파일 안에는 클래스가 들어갑니다.

 

클래스에는 메소드가 들어갑니다.

 

메소드에는 선언문이 들어갑니다.

 

소드파일

소스 코드 파일 (.java라는 확장자가 붙은 파일) 에서는 클래스(class) 각각 한 개씩을 정의합니다. 

클래스는 보통 프로그램의 한 부분이라고 할 수 있지만 아주 작은 애플리케이션 중에는 클래스 단 하나만으로 이뤄진 것도 있습니다. 

클래스는 한 쌍의 중괄호({}) 안에 들어가야 합니다.

 

클래스

클래스에는 메소드(method)가 한 개 이상 들어갑니다. 메소드는 클래스 안에서(즉, 클래스 전체를 감싸는 중괄호 안에서) 선언해야 합니다.

 

메소드

메소드를 감싸는 중괄호 안에서는 메소드에서 처리할 일을 지시하는 내용이 들어갑니다.

메소드 코드는 기본적으로 일련의 선언문을 모아놓은 것입니다.

 

 

클래스와 main 메소드가 한개 이상 있어야 한다.

 

1
2
3
4
5
6
7
pulbic class MyFirstApp{
    public static void main(String[] args){
        
        System.out.println("Hello, World!");
        
    }//main 메소드의 끝
}//MyFirstApp 클래스의 끝

 

main 메소드란?

모든 것은 main메소드에서 시작합니다.

main 메소드에서 할 수 있는 일

    1. 뭔가를 시킵니다. (선언문)

    2. 뭔가를 반복해서 수행합니다. (순환문)

    3. 조건에 따라 뭔가를 수행합니다. (분기문)

 

선언문의 종류

    1. 선언

    2. 대입

    3. 메소드 호출

    4. 기타

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 선언
int x;
String name;
double d;  
//  
 
 
// 대입
int x = 3;
//
 
 
String name = "Dirk"System.out.print("x is " + x);
 
//메소드 호출
double d = Math.random(); 
 
//
// 주석은 이렇게 씁니다.
/* 이렇게도 쓰지요. */
/** 이런 것도 있습니다. */
 

 

간단한 문법 요약 

●  모든 선언문은 세미콜론으로 끝나야 한다.

       x=x+1;

●  한 줄짜리 주석은 두 개의 슬래시로 시작합니다.

       // 주석입니다.

●  대부분의 경우에 공백은 별로 중요하지 않습니다.

       x      =    3;

●  변수를 선언할 떄는 이름과 유형을 지정해야 합니다.

       int weight;

●  클래스와 메소드를 정의하는 부분은 한 쌍의 중괄호안에 들어갑니다.

       public void go(){

          // 코드가 들어갈 자리

       }

 

 

순환문 : 뭔가를 반복해서 수행할 떄 조건이 참일떄 안의 내용을 반복함

           반드시 참과 거짓이 명확하게구분되는 것만 조건 테스트로 사용할 수 있습니다.

 

1. for : 사용자가 반복의 횟수를 알고 있을떄 사용

1
2
3
for (int x=0; x < 10; x = x + 1) {
System.out.println(“x is now “ + x);
}

 

2.while : 사용자가 반복의 횟수를 모를떄 사용

1
2
3
while (x > 12) {
= x – 1;
}

 

3.do- while : 먼저 한번 실행한 다음 조건과 비교

1
2
3
do(x > 12) {
= x – 1;
}while(x<2)

 

비교 연산자

<(오른쪽보다 작은)

>(오른쪽보다 큰)

== (동치) (등호 두 개가 들어가야 합니다.)

 

대입 연산자(등호 한 개)와 동치 연산자(등호 두 개)의 차이점에 주의하자

 

1
2
3
4
5
6
7
8
9
10
11
int x = 4// x에 4를 대입합니다.
while (x > 3) {
//x가 3보다 크기 떄문에
//순환문 코드가 실행됩니다.
= x – 1//x의 값에서 1을 뺸 값을 x에 대입합니다.
}
int z = 27//z에 27을 대입합니다.
while (z == 17) {
//z는 17과 같지 않으므로
// 이 부분에 있는 코드는 실행되지 않습니다.
}
 

 

Q : 왜 모든 것이 클래스 안에 있어야 하나요?

 

A : 자바는 객체지향(Object-Oriented)언어입니다. 

 

Q : 모든 클래스에 main 메소드가 있어야 하나요?

 

A : 아닙니다, 자바 프로그램 한 개에서 클래스 수십 개, 혹은 클래스 수백 개를 사용할 수 있지만

     main 메소드가 들어있는 클래스는 하나, 즉 프로그램을 시작시키는 클래스에만 있어야합니다.

     물론, 다른 클래스를 테스트하기 위한 용도로 main 메소드가 들어있는 테스트 클래스를 만들 수는 있겠죠

 

Q :  다른 언어에서는 정수에 대해 부울 테스트를 할 수 있는 경우도 있습니다.

      자바에서도 다음과 같은 식으로 할 수 있나요?

 

A : 안 됩니다. 자바에서는 부울과 정수가 호환되지 않습니다. 조건 테스트는 반드시 부울형으로만 사용가능합니다.

 

분기문 : 조건에 따라 뭔가를 수행할 때

 

1
2
3
4
5
6
if (x == 10) { //x의 값이 10일떄 실행 
System.out.print(“x는 10이군요.”);
else { // 앞의 if문이 조건을 만족을 하지 않
System.out.print(“x는 10이 아닙니다.”);
}
System.out.print(“이 선언문은 무조건 실행됩니다.”); 

자바에서 사용하는 if 테스트는 기본적으로 while 순환문에 있는 부울 테스트와 똑같다.

 

System.out.println 와 System.out.print 의 차이 

 

 println에서는 주어진 문자열을 출력한 다음 줄 을 바꿉니다. (맨 뒤에 ‘\n’을 붙여주는 셈입 니다.)

 

 print에서는 주어진 문자열을 출력한 다음 줄 을 바꾸지 않습니다.

 

앞의 내용들을 활용한 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package bearSong;
 
public class main {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int beerNum=3;
        String word = "bottles";
        
        while(beerNum>0) {
            System.out.println("current "+ word +" : " + beerNum );
            System.out.println("Take one down");
            System.out.println("Pass it around");
            beerNum=beerNum-1;
            
            if(beerNum==1) {
                word="bottle";
            }
            if(beerNum>0) {
                System.out.println(beerNum+" "+word+" of beer on the wall");
            }
            else {
                System.out.println("no more bottles of beer on the wall");
            }
            System.out.println("-------------------------");
        }
    
    }
 
 

 

1. 배열 만들기 String[] pets = {“Fido” , “Zeus” , “Bin”};

2. 배열의 길이 확인 int oneLength = pets.length;

3. 난수 만들기 int x = (int) (Math.random() * oneLength);

4. 구문 만들기 String s = pets[0]; s = s + “ 는 강아지입니다.”;

5. 구문 출력

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package phraseOMatic;
 
public class Main {
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
 
        String[] wordListOne= {"로마 ","카르타고 ","그리스 "};
        String[] wordListTwo= {"aaa""bbb ""ccc "};
        String[] wordListThree = {"농부 ","광부 ","목수 " };
        
        int rand1 =(int)(Math.random() * wordListOne.length);
        int rand2 =(int)(Math.random() * wordListTwo.length);
        int rand3 =(int)(Math.random() * wordListThree.length);
        
        String phrase= wordListOne[rand1] + wordListTwo[rand2] + wordListThree[rand3];
        
        System.out.println(" What the need is a "+phrase);
    }
 
}

 

 

 

posted by stellaris
prev 1 next