여정의 기록

[Java 프로그래밍] Java 기본 문법 본문

공부중 .../Java 프로그래밍

[Java 프로그래밍] Java 기본 문법

Chelsey 2022. 5. 25. 02:10
728x90

식별자

클래스, 변수, 메소드, 레이블 등의 이름

프로그래머가 작명함

규칙

  • 대소문자 구분
  • 길이에 제한 없음
  • 영 대소문자, 한글, 숫자, '_', '$'를 사용
  • 숫자로 시작 불가
  • 키워드(예약어), true, false, null은 불가
  • 잘못 작명된 예
    2002Window, my#class, class, World Cup, lee@knou

class : 첫 자와 단어의 첫 글자는 대문자, 나머지는 소문자 (Car, HelloWorld, MyClass ... )

method : 첫 글자도 소문자 (speed, myCar, gearArea ... )

상수 : 모든 문자를 대문자로 표기, 단어 사이에 '_'를 넣어 구분 (static final int NUM_CEARS ... )

자료형을 표시하기 위해 변수에 접두어를 붙이기도 함 (int nSpeed, String szStr1)

 


자료형

자료형을 선언하는 경우

  1. 변수를 선언할 때
  2. 메소드 선언 시 반환 값에

변수의 종류

  • 인스턴스 변수 instance : static이 아닌 필드의 객체가 소유하는 변수 
  • 클래스 변수 : static 필드의 객체가 공유하는 변수  
  • 지역 변수
  • 파라미터 : method 호출 시 전달하는 값을 저장하기 위한 변수

변수의 사용 범위

  • 지역 변수와 파라미터
    • 선언된 곳부터 해당 블록이 종료될 때까지 유효 

char 2 boolean 1 byte 1 short 2 int 4 long 8 float 4 double 8

args

명령 행 매개 변수

java class'sname args[0] args[1] 처럼 코드를 사용하여 인자를 전달할 수 있다.

 


배열

  • 같은 자료형의 원소로 구성
  • 원소의 개수는 생성 시 고정된다
  • 숫자 인덱스를 사용하여 특정 원소를 다룬다
  • 선언할 때는 크기를 정할 수 없다

자료형[] 변수이름;

자료형 변수이름[];

int[] a; int a[];

int[][] c; int d[][]; int[] e[];

int f[10]; -> error . 크기 선언 불가능

 

배열의 초기화

선언과 동시에 중괄호를 이용하여 초기값을 지정

int a[] = {2,3,4}; 

 -> 자동으로 메모리 공간 확보

 -> 초기화, 생성 과정을 거쳐야 배열의 원소 사용 가능

int b[]; b={1,2,3}; 이렇게는 안됨 바로 int b[]={1,2,3};으로 선언해야함

배열의 생성

배열의 원소가 사용할 메모리 공간 생성

new 연산자 이용

 -> 배열의 크기를 정하고, 메모리 공간 확보

 -> new 연산자는 메모리 주소값 리턴함

 -> 원소가 숫자이면 0, 참조형이면 null로 자동 초기화

 

선언과 생성

int a[] = new int[3]; 

int b[]; b=new int[10];

 

배열의 크기

배열의 크기를 가지는 내장 속성 length

배열이름.length

 

public class ArrayTest {
	public static void main(String args[]) {
    	int twoArray[][] = {
        for (int i=0; i<twoArray.length; i++)
        	for(int j=0; j<twoArray[i].length; j++)
        System.out.println(twoArray[i][j]);
    }
}

 

String 문자열

String Class = String 표현, 처리. 참조형 

String s1="java"

String s2= new String("java");  - 생성자 사용

참조형은 null로도 정의 가능하다

 

문자열의 덧셈 연산자

두 문자열을 연결함

print(), println()에서 often used 자주 사용됨

 

System.out.println('A'+0); 

  -> 'A'는 Character이므로 65로 간주하여 65+0 으로 계산됨

System.out.println("A"+0);

  -> "A"는 문자열이므로 0을 문자열로 간주하여 A0으로 계산됨

기본형 값은 문자열로 자동 형변환 가능 

 

Scanner class , Input and Output

Scanner Class

  • 자료를 입력 받을 때 사용
  • 공백 문자로 구분되는 단어 단위로 입력
  • nextXXX() 메소드를 이용해 자료형 타입별 입력 가능

키보드에서 input 시 

-> System.in을 이용하여 Scanner 객체 만들어 사용

Scanner sc = new Scanner(System.in);

String name = sc.next();

 

Scanner class input method

String next()

int nextInt()

double nextDouble()

String nextLine()

 

boolean hasNext() 입력이 없으면 기다리고 입력이 있으면 다음 단어가 있으면 true를 반환

boolean hasNextInt() 

 


클래스 정의

[접근 제어자] class 클래스 이름 {
}

접근 제어자 : 생략, public, protected, private

 

private : 같은 클래스에서만 사용 가능

생략 : 같은 패키지의 다른 클래스에서 사용 가능

protected : 같은 패키지, 자식 클래스에서 사용 가능

public : 모든 클래스에서 사용 가능

728x90