자바의 시작
//package문 _작성
//import문 _이름동일
public class Main {
public static void main(String[] args) {
System.out.println( "test");
}
}
ㅇ 자바의 패키지(package)
패키지 선언
package 패키지이름;
위와 같은 명령문을 클래스나 인터페이스의 소스 파일에 추가하기만 하면 됩니다.
이때 패키지 이름에는 패키지의 경로까지 포함한 풀 네임을 명시해야 합니다.
자바에서 패키지(package)란 클래스와 인터페이스의 집합을 의미합니다.
이렇게 서로 관련이 있는 클래스나 인터페이스를 함께 묶음으로써 파일을 효율적으로 관리할 수 있게 됩니다.
위와 같이 선언한 패키지에 속한 클래스를 다른 파일에서 사용하기 위해
자바에서는 import 키워드를 별도로 제공하고 있습니다.
[VS Code] JAVA Project 만들기 (tistory.com)
ㅇ 자바의 Import 란
다른 패키지 안의 클래스를 사용하기 위해서는 클래스 이름 앞에 패키지를 붙여야 합니다.
하지만 다른 패키지에 속한 클래스의 이름 앞에 매번 패키지 이름을 붙이는 것은 상당히 번거로운 작업이기 때문에
파일의 앞머리에 임포트(import)라는 작업으로 패키지를 매번 입력하는 단점을 없애 줄 수 있습니다.
임포트 작업을 해주면 다른 패키지 안의 클래스를 사용할 때 클래스 이름만 적어주면 됩니다.
//import 패키지명.클래스명;
import java.util.ArrayList;
//import 패키지명.*;
//import문을 여러번 사용하는 대신사용
//패키지 / (.):안의 / (*):모든것을 / import:가져오겠다
import java.util.*;
ㅇ 자바의 모든 프로그램은 public static void main (String[] args) 함수로 시작
- public
public은 접근제어자이다. 접근제어자는 외부에서 접근할수 있는 일종의 제약입니다.
모든 함수의 앞에는 이 함수를 어디에서 접근할 수 있는지 범위를 지정할 수 있다. (보안의범위)
종류는 제약이 강한순서대로 private(이파일안에서만) -> protected -> public 이 있으며
public 은 어느곳에서든 해당 객체를 참조할수있다는 의미이다.
main 함수만은 public 을 지정해야 한다.
- static
함수가 정적 함수임을 의미합니다. 즉 '가만히 있어도 되는' 이라는 의미
static 객체에서 static 이 아닌 객체를 호출하는것은 불가능
static 이 먼저 정의가 되기때문에 아직 정의되지 않은 객체는 호출할수 없기때문.
자바는 변수나 함수를 메모리에 할당하는 방법이 2가지가 있다.
첫번째는 static 영역에 선언하는 것이고, 다른 하나는 heap 영역에 선언(new 연산자)하는 것.
static | heap | |
메모리 할당 기준 | 프로그램 실행되는 순간 | 연산이 실행되는 순간 |
메모리 정리 기준 (Garbage Collector) | 정리대상 아님 | Garbage Collector에 의해 정리 |
- void
void 는 "함수가 끝날 때 리턴값이 없다" 라는 의미 "리턴을 안하겠다"
main 함수가 종료되면(혹은 비정상적으로 죽으면) 프로그램이 종료된다.
프로그램 자체가 종료되기 때문에, return 값의 의미를 지닐수가 없음.
그러므로 main 함수는 void 를 의무적으로 사용
- main
main 메소드명. 자바의 시작은 main 함수명으로 시작해야 한다.
- String[] args
args 문자열을 배열로 사용하겠다는 의미.
args는 변수명이기 때문에 꼭 args가 아니어도 상관없으나, String[] args 구문 자체를 뺄 수는 없다.
public과 class
class앞에 public 입력시 파일명과 클래스명 동일해야 오류가 뜨지않고,
파일명과 클래스명 다를 경우 class 만 입력해야한다.
이런 규칙이 있는 이유:
보통 하나의 자바 파일에 여러개의 클래스를 작성하는 경우에 하나의 대표 클래스를 지정하고
파일명과 동일하게 하는 것이 코드의 가독성에 도움이 되기 때문.
가능하면 파일명과 동일하게 하는 것을 권장한다.
Scanner 클래스
읽은 바이트를 문자, 정수, 실수, 불린, 문자열 등 다양한 타입으로 변환하여 리턴하는 클래스
Scanner 클래스의 특징 :
1. 기본적인 데이터 타입들을 Scanner의 메소드를 사용하여 입력 받을 수 있다.
예) 100을 입력하고자할때, String으로 입력받고 싶으면 next() 나, nextLine()을,
int(정수)로 입력 받고 싶다면 nextInt()를 사용하여 입력받으면 알아서 해당 타입으로 입력된다.
메서드 | 기능 |
next() | String(문자)을 읽음. 단 띄어쓰기 뒷부분은 읽지않음 |
nextLine() | String을 읽음. 띄어쓰기 포함하여 한줄 (enter을 치기전까지) |
nextInt() | int (정수)를 읽음. |
nextByte | byte (정수)를 읽음 |
nextShort() | short (정수)를 읽음 |
nextLong() | long (정수)을 읽음 |
nextFloat() | float (실수)를 읽음 |
nextDouble() | double(실수)을 읽음 |
nextBoolean() | boolean을 읽음 (true/false) |
2. Scanner 을 사용할 시 util 패키지를 경로의 Scanner 클래스를 호출해야 한다.
자바에서 쓰이는 대부분의 클래스는 lang 패키지가 아니라면 import 을 통해 호출해주어야 한다.
Scanner 의 경우는 java.util 패키지에 있다.
import java.util.Scanner;
3. 공백(띄어쓰기) 또는 개행(줄 바꿈)을 기준으로 읽는다.
Scanner는 입력되는 키 값을 공백으로 구분되는 토큰 단위로 읽는다.
공백 문자 : ' \t ',' \f ',' \r ',' ',' \n '
개발자가 원하는 타입 값으로 쉽게 읽을 수 있다.
프로그램을 실행시키고 콘솔창에 문자열을 입력하고 'Enter'를 누르면 된다.
Scanner 사용 :
import java.util.Scanner; //Scanner 클래스 호출
Scanner a = new Scanner(System.in); //Scanner 객체 생성
1. import문
import java.util.Scanner;
자바의 경우 java.util 패키지 안에 Scanner 클래스가 있으므로 다음과 같이 import를 쓴 후 해당 클래스 경로를 호출한다.
2. Scanner 객체 생성
기본적인 객체생성하는 방법 :
클래스이름 객체이름 = new 클래스이름();
- new는 인스턴스이다 : 메모리에 고유 영역을 가지고있다. (메모리에 있다)
- Scanner는 설계도이다. 인자값은 (System.in)을 받겠다 라는 의미.
Scanner a = new Scanner(system.in);
System.in
키보드에서 사용자로부터 키 입력을 받기 위해선 통로인 System.in을 사용한다.
추가예제
import java.util.Scanner;
public class ScannerEx {
public static void main(String args[]) {
System.out.println("이름, 도시, 나이, 체중, 독신 여부를 빈칸으로 분리하여 입력하세요");
Scanner scanner = new Scanner(System.in);
String name = scanner.next(); //문자열읽기
System.out.print("이름은" + name + ", ");
String city = scanner.next(); //문자열읽기
System.out.print("도시는" + city + ", ");
int age = scanner.nextInt(); //정수읽기
System.out.print("나이는" + age + "살, ");
double weight = scanner.nextDouble(); //실수읽기
System.out.print("체중은" + weight + "kg, ");
boolean isSingle = scanner.nextBoolean(); //논리값읽기
System.out.print("독신여부는" + isSingle + "입니다. ");
scanner.close(); //scanner 객체닫기
}
}
System.out.println()
System.out.println() 메소드를 사용하면 모니터에 전달된 데이터를 출력한 후에 줄 바꿈까지 해줍니다.
System.out.println(출력할데이터);
반면 System.out.print() 는 줄바꿈을 하지 않습니다.
대부분의 경우 println() 을 쓰고, 줄바꿈을 하지 말아야 하는 특수한 경우에만 print() 를 사용합니다.
첨부 이미지출처 : 이것이자바다
'STUDY > JAVA' 카테고리의 다른 글
[JAVA] 객체 지향 OOP ! 개념 이해 추가 정리 ☑ (0) | 2022.06.14 |
---|---|
[JAVA] 자바 객체와 클래스 ! 개념 이해 추가 정리 ☑ (0) | 2022.06.13 |
[JAVA] 22-06-13 자바 변수와 데이터 타입 ☑ (0) | 2022.06.13 |
[JAVA] 22-06-13 자바란? ☑ (0) | 2022.06.13 |
[JAVA] java 11 oracle 사이트 다운로드와 환경 변수 (0) | 2022.06.13 |