자바 기본 프로그래밍

1. 자바 프로그램의 구조

클래스 만들기

public class title{
 //필드(변수), 메소드(함수) 코드 작성
 }

 

class 키워드로 클래스 이름을 선언하고 { } 사이에 필드(변수)와 메소드(함수) 코드 작성

+) public은 자바의 접근지정자로서 다른 모든 클래스에서 해당 클래스를 자유롭게 사용할 수 있다는 선언

 

main() 메소드

public static void main(Stinrg[] args){
 ...
 }

main()은 반드시 public, static, void 타입으로 선언.

한 클래스에서 2개 이상의 main()을 작성하면 안된다.

자바 응용 프로그램에서 여러 클래스로 이루어지는 경우, 실행을 시작할 클래스에만 main()을 사용하면 된다.

자바 프로그램은 main()메소드부터 실행을 시작.

 

메소드

public static int sum(int n, int m){
	return n + m;
}  // 메소드 sum()선언

s = sum(10, 20);   //메소드 sum() 호출

클래스의 멤버 함수를 자바에서는 메소드라고 부르며 메소드의 개수는 제한이 없다.

 

변수 선언

변수 : 프로그램 실행 동안 데이터를 저장하는 공간

지역변수 : 메소드 내에 선얻뇌어 사용되는 변수. 메소드 내에서만 사용 가능. 메소드의 실행이 끝나면 소멸.

 

화면 출력

System.out.println() // 출력 후 다음 행으로 이동
System.out.print() // 출력 후 다음 행으로 이동하지 않음.

 

2. 식별자

식별자 : 클래스, 변수, 상수, 메소드 등에 붙이는 이름

 

<식별자 이름 규칙>

  • 특수문자, 공백 사용 불가.('_', '$'는 예외로 사용 가능)
  • 첫번째 문자로 숫자는 사용 불가
  • if, while, class, true, false, null 등 자바 언어의 키워드는 식별자로 사용 불가
  • 한글 사용 가능
  • 대소문자 구별함
  • 길이 제한이 없음

클래스, 변수, 메소드, 상수 이름

 

클래스 : 첫 번째 문자는 대문자로 시작. 여러 단어가 복합되면 각 단어의 첫 번째 문자만 대문자로 표시

           public class HelloWorld { }

변수, 메소드 : 첫 단어는 소문자로 표기. 이후 각 단어의 첫 번째 문자만 대문자로 표기

          int myAge;

          public int getAge( ) {    }

상수 : 이름 전체를 대문자로 표기

         final double PI = 3.14;

3. 데이터 타입

레퍼런스 타입

레퍼런스 : C/C++의 포인터와 비슷한 개념

  • 배열에 대한 레퍼런스 = 배열에 대한 주소값
  • 클래스에 대한 레퍼런스 = 객체에 대한 주소값
  • 인터페이스에 대한 레퍼런스

 

기본 타입

  1. boolean: 1비트. true or false
  2. char: 2바이트. 문자 저장
  3. byte: 1바이트. 정수 저장
  4. short: 2바이트.  정수 저장
  5. int: 4바이트.  정수 저장
  6. long: 8바이트.  정수 저장
  7. float: 4바이트. 실수 저장
  8. double: 8바이트. 실수 저장

문자열

 

자바의 기본 타입에 속하지 않아서 String 클래스 이용

           String strName = "name";

 

자바에서 문자열과 기본 타입의 + 연산이 실행되면, 기본 타입의 값이 문자열로 바뀌고 두 문자열이 연결된 새로운 문자열이 생성

public class Example{
	public static void main(String[] args){
    	String name = "Java";
        name + 1.4;  //"Java1.4"라는 새로운 문자열이 생성
        System.out.println(name); // Java1.4 문자열 출력
    }
}

 

변수 선언

 

데이터 타입과 이름으로 변수 선언

같은 타입의 변수를 여러 개 선언하려면 콤마(,)로 분리

 

리터럴

프로그램에 직접 표현한 값

 

<정수 리터럴> : int 타입으로 자동 컴파일.

                      long 타입으로 지정하려면 숫자 뒤에 L or l을 붙인다.

  • 10진수 : 0으로 시작하지 않는 수
  • 8진수 : 0으로 시작하는 수
  • 16진수 : 0x로 시작하는 수
  • 2진수 : 0b로 시작하는 수

<실수 리터럴>

: 소수점 형태나 지수 형태

: double 타입으로 자동 처리

: 숫자 뒤에 f or F = float, d or D = double 타입으로 강제 변환

 

<문자 리터럴>

: 단일 인용부호(' ')로 문자 표현

: \u 다음에 문자의 유니코드 값 사용

 

<특수문자 리터럴>

: 백슬래시(\)뒤에 특수 기호 붙여 사용

 

<논리 리터럴과 boolean 타입>

논리 리터럴은 true, false 두개이며 boolean 타입의 변수에 직접 치환 or 조건문에 사용

boolean a = true;
boolean b = 10 > 0;
boolean c = 1;  // 오류
while(true){
}

자바에서는 숫자를 참, 거짓으로 사용 불가.

무한 루프 while(true)사용. while(1)은 숫자를 참, 거짓으로 사용 불가하기 때문에

 

상수

변수 선언 시 final 키워드 사용하여 상수를 만든다.

final double PI = 3.14;

final(상수 선언) /  데이터 타입 / 상수 이름 순으로 선언

 

타입 변환

변수, 상수, 리터럴 타입을 다른 타입으로 바꿈

 

자동 타입 변환 : 치환문, 수식 내에서 타입이 일치하지 않을 때, 오류 대신 작은 타입으로 큰 타입으로 자동 변환

long m = 25;  //int 타입 25가 long 타입으로 자동 변환

강제 타입 변환 : 강제로 타입 변환을 지시

int n = 300;
byte b = (byte)n;

큰 타입의 값을 작은 타입으로 자동 변환할 때, ( ) 안에 타입을 명시하여 강제 타입 변환 지시.

but, 강제 변환을 하면 컴파일 오류만 발생하지 않을 뿐 300에서 256처럼 초과한 만큼 데이터 손실이 발생한다.

4. 키 입력

System.in

키보드 장치를 직접 제어하고 키 입력을 받는 표준 입력 스트림 객체

but 입력된 키를 바이트 정보로 응용 프로그램에 제공해 문자나 숫자로 변환해야 한다.

 

Scanner

입력된 키를 사용자가 원하는 타입으로 변환해준다.

공백 문자를 기준으로 분리하여 토큰 단위로 읽는다.

Scanner scanner = new Scanner(System.in);

Scanner 객체 생성. System.in 객체를 이용하여 키보드로부터 바이트 정보들을 입력받고 사용자가 원하는 타입으로 변환하여 리턴

import java.util.Scanner;

Scanner 사용하기 위해서 자바에서 제공되는 java.util 패키지에서 import 해와야 한다.

 

nextLine()

공백이 낀 문자열을 입력받는다. <Enter>키의 입력을 기다리는 용도로 사용 가능.

import java.util.Scanner;

public class Result {
	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 + ",");
		
		boolean isSingle = scanner.nextBoolean();  // 논리값 읽기
		System.out.println("독신 여부는 " + isSingle);
		scanner.close();
	}
}

5. 연산

6. 조건문

 

반응형

'Back-End > Java' 카테고리의 다른 글

[Java] 객체  (1) 2022.02.18
[Java] 클래스와 생성자  (0) 2022.02.15
[Java] 예외 처리  (0) 2022.02.14
[Java] 배열  (0) 2022.02.14
[Java] 반복문  (0) 2022.02.14