티스토리 뷰
[Java] 여러 클래스 사용해보기 / Scanner, JFrame, Random, 참조 방식, 문자열 길이
Happyoon ~ 2021. 11. 2. 13:541. Scanner
MainClass03.java - Scanner 클래스 사용하여 입력받기
package test.main;
import java.util.Scanner;
public class MainClass03 {
public static void main(String[] args) {
System.out.println("main 메소드가 시작 되었습니다.");
/*
* Scanner 객체를 생성하면서 생성자의 인자로 System.in을 전달해서 생성한다.
* System 클래스의 static 필드 in 에는 키보드로부터 입력 받을 수 있는 객체의
* 참조값이 들어있다.
*/
Scanner scan = new Scanner(System.in);
//콘솔을 열고 입력하라고 알린다.
System.out.print("문자열 입력:");
//enter 키를 치기 전까지 콘솔에 입력한 문자열을 리턴 type으로 읽어오는 메소드
String line = scan.nextLine();
//입력한 문자열 출력해보기
System.out.println("입력받은 문자열: "+line);
System.out.println("main 메소드가 종료됩니다.");
}
}
java.util.Scanner을 import 하여 Scanner 클래스를 사용할 수 있다.
스캐너 클래스 객체를 만들려면, 표준 입력 스트림을 나타내는 System.in 객체를 전달해야 한다.
따라서,new Scanner(System.in)은, 사용자에게 콘솔을 열고 입력하라고 알린다.
특정 데이터 유형의 값을 읽기 위해서는 next~()함수를 사용한다. (nextInt(), nextDouble() 등)
nextLine()은 엔터키를 치기 전까지 입력한 문자열을 리턴 type으로 읽어오는 메소드이다.
위의 코드를 실행하면 다음과 같이 출력된다.
문자열을 사용자가 원하는대로 입력하면 입력받은 문자열이 출력된다.
System.out.print()를 하면, 출력 후 개행되지 않고, System.out.println()은 출력 후 개행이 된다.
2. JFrame
MainClass04.java - JFrame 사용해보기
JFrame은 javax.swing.JFrame을 import 하여 사용할 수 있다.
import javax.swing.JFrame;
모든 클래스를 사용할 때 공통 프로세스는,
1. 필요한 클래스 import 하기
2. import된 클래스를 객체로 생성하기
3. 객체의 method들의 도움을 받아 원하는 목적을 달성하기
이다.
따라서, 위의 프로세스를 따라 import를 완료했으니, 이제는 객체를 생성할 차례이다.
JFrame f = new JFrame();
객체도 생성을 했으니 원하는 목적이 무엇인지 살펴보자.
초기 위치가 화면의 좌상단으로부터 아래로, 우측으로부터 100 떨어진 위치에, 500*500 크기의 JFrame이 만들어지도록코딩하고 싶다.
이때 사용하는 메소드는, setBounds()이다.
f.setBounds(100,100,500,500);
run을 해보니, 아무것도 뜨지 않는다. 프레임이 보이도록 하려면, setVisible에 true를 전달해야한다.
f.setVisible(true);
그러면 다시 실행했을 때 JFrame이 잘 뜨는 모습을 볼 수 있다.
이번에는, 제목을 설정해보자.
JFrame의 제목은 setTitle() 메소드를 사용한다.
f.setTitle("제목");
제목이 잘 들어간 모습을 확인할 수 있다.
마지막으로, setDefualtCloseOperation()은, 프로그램을 닫을 조건을 생성하는 것이다.
JFrame을 닫아도 프로그램은 종료되지 않기 때문에, JFrame 종료 시 프로그램도 종료되도록 설정하고 싶다면 JFrame의 static 필드인 EXIT_ON_ClOSE를 전달해야한다.
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
이렇게 하면, JFrame을 닫을 때 프로그램이 정상 종료되는 모습을 확인할 수 있다.
전체 코드
MainClass04.java
package test.main;
//1. 필요한 클래스를 import 한다.
import javax.swing.JFrame;
public class MainClass04 {
public static void main(String[] args) {
//2. import된 클래스를 객체로 생성하고
JFrame f = new JFrame();
//3. 객체의 method 들의 도움을 받아 원하는 목적을 달성한다.
f.setTitle("제목");
f.setBounds(100,100,500,500);
f.setVisible(true);
//EXIT_ON_CLOSE는 static 필드이기 때문에 new하지 않고 .찍어서 바로 사용 가능
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
3. Random
Random은 java.util.Random을 import하여 사용할 수 있다.
바로 예제를 살펴보자!
1) 실행했을 때 1~45 사이의 랜덤한 정수를 하나 얻어 콘솔창에 출력하는 프로그래밍을 해보세요.
import를 했으니, 다음은 객체를 생성할 차례이다.
Random ran = new Random();
ran에 .을찍고 메소드와 필드들을 살펴보니, nextInt()라는 메소드가 적합해보였다.
nextInt()에 숫자를 인자로 넘겨주면, 0에서 그 숫자 이전까지의 수들 중 랜덤하게 하나를 가져오는 메소드이다.
따라서, 1~45가 원하는 범위임으로, 0~44까지 랜덤함수로 고른 후에, 1을 더해주는 방식을 생각해 볼 수 있다.
전달하는 숫자는 범위에 포함하지 않으므로, 45를 전달해야한다.
System.out.println(ran.nextInt(45)+1);
전체 코드
MainClass05.java
package test.main;
import java.util.Random;
public class MainClass05 {
public static void main(String[] args) {
/*
* run 했을 때 1~45 사이의 랜덤한 정수를 하나 얻어내서
* 콘솔창에 출력하는 프로그래밍을 해 보세요.
*
* - hint
*
* java.util.Random 클래스를 활용해보세요.
*/
Random ran = new Random();
System.out.println(ran.nextInt(45)+1);
}
}
4. length() 메소드로 문자열 길이 출력하기
실행했을 때 콘솔창으로부터 임의의 문자열을 입력받아, 입력한 문자열의 길이를 콘솔창에 출력해보세요.
문자열을 입력받아야 하므로 Scanner을 import 해야한다.
Scanner scan = new Scanner(System.in);
문자열 입력은 nextLine()을 통해 받을 수 있다.
String line = scan.nextLine();
입력받은 문자열의 길이는 length() 메소드를 통해 얻을 수 있다.
따라서, 출력 코드는 다음과 같다.
System.out.println("입력한 문자열은 "+line.length()+"글자 입니다.");
전체 코드
MainClass06.java
package test.main;
import java.util.Scanner;
public class MainClass06 {
public static void main(String[] args) {
String str = "abcd1234";
/*
* run했을 때 콘솔창으로부터 임의의 문자열을 입력받아서
* 입력한 문자열의 길이를 콘솔창에 출력해보세요.
*
* 만일 9글자를 입력했다면
* [출력 형식]
* 입력한 문자열은 9글자 입니다.
*/
Scanner scan = new Scanner(System.in);
System.out.print("문자열 입력:");
String line = scan.nextLine();
System.out.println("입력한 문자열은 "+line.length()+"글자 입니다.");
}
}
출력 결과
System.out.print("문자열 입력: ")을 통해, 개행하지 않고 옆에 문자열을 입력할 수 있음을 확인할 수 있다.
'development > Java' 카테고리의 다른 글
[Java] 배열 Array #1 / 확장 for문, Class 객체 배열 생성하기, 입력받은 값을 배열에 집어넣기 (0) | 2021.11.02 |
---|---|
[Java] Wrapper Class (0) | 2021.11.02 |
[Java] 생성자 Constructor (0) | 2021.11.02 |
[Java] Method / 오버로딩, 여러 타입의 인자를 매개변수로 가지는 method (0) | 2021.11.02 |
[Java] Class #2 - static (0) | 2021.11.02 |
- Total
- Today
- Yesterday
- append
- R
- 고득점 키트
- 브루트 포스
- 단계별로풀어보기
- 프로그래머스
- jsp
- Java
- 스프링
- html
- baekjoon
- jQuery
- 문자열
- CSS
- python
- 큐
- 자바
- 자바스크립트
- bootstrap
- 백준
- Oracle
- Case When
- 정렬
- javascript
- brute force
- web
- 파이썬
- 장고
- 덱
- Django
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |