본문 바로가기

Learning/JAVA

테스트용 코딩, 개념 정리

<테스트용 코딩>

1. 스캐너를 이용하여 단을 입력받고 콘솔창에 구구단 출력하기 (GuTest)

    • Scanner로 단을 입력받고 print로 콘솔창에 출력한다.

    • 오류메시지를 쓰기 위해 try-catch문으로 처리한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package guiTest;
 
import java.util.InputMismatchException;
import java.util.Scanner;
 
public class GuTest {
 
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("단을 입력하세요");
        try {
            int dan=sc.nextInt();
            for(int i=1;i<10;i++) {
                System.out.println(dan+"*"+i+"="+dan*i);
            }
        }catch(InputMismatchException n) {
            System.out.println("숫자를 입력하세요");
        }
    sc.close();
    }
}
 

 

 

2. 상속과 오버라이딩을 이용하여 출력하기 (Test)

    • extends로 클래스를 상속받는다.

    • super()메소드의 인자로 부모 클래스의 멤버변수를 설정한다.

    • 오버라이딩을 통해 부모 클래스의 출력문과 자식 클래스의 출력문을 달리 설정할 수 있다. 

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
31
32
33
34
35
36
37
38
package Test;
class Person{
    String name;
    int age;
    public Person(String name, int age) {
        this.name=name;
        this.age=age;
    }
    
    public void show() {
        System.out.print(name+" "+age+" ");
    }
}
 
class Student extends Person{
    String major;
    public Student(String name, int age, String major) {
        super(name, age);
        this.major=major;
    }
    @Override
    public void show() {
        super.show();
        System.out.print(major);
    }
}
 
public class Test {
    int y; //멤버변수
    public static void main(String[] args) {
        Student s=new Student("김자바"25"회사원");
        s.show(); //김자바 25 회사원 출력되도록 바꾸기
//        int x=0; //지역변수는 반드시 초기값 설정 
//        System.out.println(x);
//        Test t=new Test();
//        System.out.println(t.y); //멤버변수가 int형이면 0으로 설정된다.
    }
}

 

 

 

3. StringTokenizer를 이용하여 문자열을 나눠서 출력하기 (TokenTest)

    • StringTokenizer 클래스에 객체를 선언한다.

    • StringTokenizer 생성자의 멤버변수로는 나눌 문자열 객체, "기준"을 써준다.

    • while문의 인자로는 stk.hasMoreTokens()메소드를 이용, 토큰 수는 countTokens(), 나눠진 문자열은 nextToken()메소드를 이용한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package Test;
 
import java.util.StringTokenizer;
 
public class TokenTest {
 
    public static void main(String[] args) {
        String str="aaa@bbb@ccc@ddd.eee";
        StringTokenizer stk=new StringTokenizer(str,"@.");
        while(stk.hasMoreTokens()) {
            String token=stk.nextToken();
            System.out.println(token);
        }
        System.out.println("======");
    }
}

 

 

 

4. 전치연산, 후치연산

 

        int x=15, y=3, z=4;

        z=++x/y;

        System.out.println("x="+x); //16

        System.out.println("y="+y); //3

        System.out.println("z="+z); //5

        x*=y+1;

        System.out.println("x="+x); //64

        System.out.println("y="+y); //3

        System.out.println("z="+z); //5

        z=++x+y++;

        System.out.println("x="+x); //65

        System.out.println("y="+y); //4

        System.out.println("z="+z); //68

 

 


 

<Test문제 개념 정리>

  • 스캐너를 이용하여 단을 입력받고 콘솔창에 구구단 출력하기 (GuTest)

    • Scanner로 단을 입력받고 print로 콘솔창에 출력한다.

    • 오류메시지를 쓰기 위해 try-catch문으로 처리한다.

  • 상속과 오버라이딩을 이용하여 출력하기 (Test)

    • extends로 클래스를 상속받는다.

    • super()메소드의 인자로 부모 클래스의 멤버변수를 설정한다.

    • 오버라이딩을 통해 부모 클래스의 출력문과 자식 클래스의 출력문을 달리 설정할 수 있다. 

  • StringTokenizer를 이용하여 문자열을 나눠서 출력하기 (TokenTest)

    • StringTokenizer 클래스에 객체를 선언한다.

    • StringTokenizer 생성자의 멤버변수로는 나눌 문자열 객체, "기준"을 써준다.

    • while문의 인자로는 stk.hasMoreTokens()메소드를 이용, 토큰 수는 countTokens(), 나눠진 문자열은 nextToken()메소드를 이용한다.

  • 전치연산, 후치연산 

        int x=15, y=3, z=4;

        z=++x/y;

        System.out.println("x="+x); //16

        System.out.println("y="+y); //3

        System.out.println("z="+z); //5

        x*=y+1;

        System.out.println("x="+x); //64

        System.out.println("y="+y); //3

        System.out.println("z="+z); //5

        z=++x+y++;

        System.out.println("x="+x); //65

        System.out.println("y="+y); //4

        System.out.println("z="+z); //68

 

  • 주석 표시하는 법 36p.

    • 한줄: //

    • 여러줄: /* */

  • 변수 이름 정하기 47p. 

    • $와 _만 특수기호로 쓸 수 있다.

    • 변수 이름은 숫자로 시작할 수 없다.

    • 이미 사용 중인 예약어는 사용할 수 없다.

  • 변수 선언방식

    • 지역변수는 반드시 초기값 설정

    • 멤버변수가 int형이면 0으로 설정된다.

  • 기본 데이터형 49p.

    • 정수형 byte, short, int, long

    • 문자형 char

    • 실수형 float, double

    • 논리형 boolean

  • 생성자 153p.

    • 생성자가 하는 일: 멤버변수를 초기화한다.

    • 생성자 규칙: 클래스 이름하고 같아야함. void를 쓸 수 없다. 반환형도 없다. 클래스를 생성할 때만 호출된다. 

  • 접근제어자 167p.

    • public: 모든 클래스에서 접근 가능함

    • protected: 동일 패키지에 속하는 클래스와 하위 클래스 관계의 클래스에 의해 접근 가능함

    • default(생략): 같은 패키지내부에서만 접근 가능함

    • private: 클래스 내에서만 접근 가능함.

    • protected가 default보다 범위가 크다.

  • static: 여러 클래스에서 공통으로 쓰기 위해 만들어진 것

  • final: 상수로 취급하여 수정하지 못하도록 하는 예약어

  • 추상클래스 (Abstract) 281p.

    • 메소드가 구현되지 않는 (중괄호가 없을때) 클래스를 추상이라 한다.

    • 키워드는 abstract.  추상클래스는 객체를 생성할 수 없다.

  • 인터페이스 (Interface)

    • 추상클래스는 구현되는 메소드, 구현되지 않는 메소드를 다 가질 수 있는데 인터페이스는 추상으로만 이루어져있다.

    • 추상과 마찬가지로 역시 객체를 생성할 수 없다. 여러개의 인터페이스를 implements할 수 있기에 다중상속이 불가능한 자바의 특성을 보완할 수 있다.

  • Calendar 클래스

    • 추상으로 만들어졌기 때문에 new 대신에 getInstance()메소드를 활용한다.

  • Set, Map, List

    • Set: 중복을 허용하지 않는 집합이다.

    • Map: 중복을 허용하지 않으며 키와 value로 이루어져 있는 자료구조이다.

    • List: 중복을 허용 하며 순서가 있는 자료구조이다.  

  • 예외처리

    • try-catch, throws

    • finally- 반드시 실행해야 하는 문장.

  • 최상위객체는 Object이다.

  • 객체지향 언어의 3가지 특징

    • 캡슐화, 상속성, 다형성

  • Thread

    • 실행할 수 있는 가장 작은 단위이다.

    • 사용자가 직접 실행하지 못하며 start()메소드로 호출하여 run()으로 실행한다.