자바기반응용프로그래밍 - 기본구조, 식별자, 데이터타입, 스캐너

2022. 4. 7. 22:33·Language/JAVA

 

 

자바 프로그램의 기본 구조

// hello.java

public class Hello {
	public static int sum(int n, int m) {
		return n + m;
	}

// main() 메소드에서 실행 시작
	public static void main(String[] args) {
		int i = 20;
		int s;
		char a;
		s = sum(i, 10); // sum() 메소드 호출
		a = '?';
		System.out.println(a); // 문자 '?' 화면 출력
		System.out.println("Hello"); // "Hello" 문자열 화면 출력
		System.out.println(s); // 정수 s 값 화면 출력
	}
}

class 이름 = 파일 이름

class 내 main은 무조건 public static void로 선언

 

식별자

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

 

식별자의 원칙

1. 자바 언어의 키워드, ‘@’, ‘#’, ‘!’와 같은 특수 문자, 공백 또는 탭 사용 불가

2. ‘_’, ‘$’, 유니코드 문자, 한글 사용 가능

3. 식별자의 첫 번째 문자로 숫자는 사용 불가

// 식별자 이름 예시

int name;
char student_id;  // '_' 사용 가능
void $func() {}  // '$' 사용 가능
class Monster3 { }  // 숫자 사용 가능
int whatsyournamemynameiskitae;  // 길이 제한 없음
int barChart; int barchart;  // 대소문자 구분. barChart와 barchart는 다름
int 가격;  // 한글 이름 사용 가능

 

자바의 데이터 타입

>> 기본 타입 8개

  • boolean
  • char
  • byte
  • short
  • int
  • long
  • float
  • double

>> 레퍼런스 타입 1개 

  • 배열(array)에 대한 레퍼런스
  • 클래스(class)에 대한 레퍼런스
  • 인터페이스(interface)에 대한 레퍼런스

 

>> 문자열

기본 타입 X, String 클래스로 표현

문자열끼리 연산 시 문자열 자체를 연결함

 

>> 리터럴

프로그램에서 직접 표현한 값

  • 기본 타입 종류: 정수 리터럴, 실수 리터럴, 문자 리터럴(''), 특수문자 리터럴, 논리 리터럴
  • 기본 타입 외: null 리터럴, String 리터럴("") 

 

>> 상수

final 키워드 사용 => 실행 중 값 변경 불가

선언 시 초기값을 꼭 지정해야함

 

데이터 타입 변환

  1. 자동 타입 변환 (캐스팅): 작은 타입을 큰타입으로
  2. 강제 타입 변환 (just 괄호) - 데이터 손실 가능

 

Scanner

Scanner 클래스 : java.util.Scanner 클래스를 반드시 import 해주어야 함.

System.in에게 키를 읽게 하고, 이를 다양한 데이터 타입으로 변환하여 리턴

입력되는 키 값을 공백으로 구분된 토큰 단위로 끊어 읽음

import java.util.Scanner;  // import 문 필요
...
Scanner a = new Scanner(System.in);  // Scanner 객체 생성

 

주요 메소드

int nextInt() => 자료형만 바꿔서 사용, 예시의 경우 다음 토큰을 정수형 타입으로 리턴한다는 의미

 

import java.util.Scanner;

public class ScannerEx {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		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 single = scanner.nextBoolean(); // 논리값 읽기
		System.out.println("독신 여부는 " + single + "입니다.");
		
		scanner.close(); // scanner 닫기
	}

}

 

저작자표시 (새창열림)

'Language > JAVA' 카테고리의 다른 글

자바기반응용프로그래밍 - main() 메소드로 인자 전달  (0) 2022.04.11
자바기반응용프로그래밍 - 패키지, 접근 지정자, static, final  (0) 2022.04.10
자바기반응용프로그래밍 - 메소드, 레퍼런스, 오버로딩, 가비지 컬렉션  (0) 2022.04.10
자바기반응용프로그래밍 - 객체 지향을 위한 클래스와 객체  (0) 2022.04.09
자바기반응용프로그래밍 - 연산자, 조건문  (0) 2022.04.08
'Language/JAVA' 카테고리의 다른 글
  • 자바기반응용프로그래밍 - 패키지, 접근 지정자, static, final
  • 자바기반응용프로그래밍 - 메소드, 레퍼런스, 오버로딩, 가비지 컬렉션
  • 자바기반응용프로그래밍 - 객체 지향을 위한 클래스와 객체
  • 자바기반응용프로그래밍 - 연산자, 조건문
abyss-s
abyss-s
프론트엔드 공부합니다.
  • abyss-s
    abyss-s의 블로그입니다.
    abyss-s
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • Web (16)
        • JavaScript (6)
        • TypeScript (1)
        • React (5)
        • Vue (0)
        • Storybook (1)
        • Next.js (1)
      • Backend & Infra (8)
        • Database (3)
        • Node.js (2)
        • SpringBoot (1)
      • PS (71)
      • CS (30)
        • OS (13)
        • Structure & Algorithm (5)
        • Network (10)
        • 정보처리기사 (2)
      • Language (18)
        • OOP (1)
        • JAVA (13)
        • C++ (4)
      • Activities (12)
        • 멋쟁이 사자처럼 (2)
        • OSSCA (3)
        • LG U+ URECA (3)
        • Project (2)
      • AI (0)
      • Git & Github (5)
      • Notion (1)
      • IT (4)
      • Statistics (11)
      • Book (4)
      • Diary (1)
      • Game (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
    • 백준
    • 트위터
  • 공지사항

    • abyss-s의 티스토리에 오신 것을 환영합니다.
  • 인기 글

  • 태그

    Python
    생활코딩
    C++
    코드트리
    통계학
    그리디
    OS
    React
    JavaScript
    운영체제
    BFS
    BAEKJOON
    백준
    자바스크립트
    파이썬
    github
    자바기반응용프로그래밍
    Java
    네트워크
    DP
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
abyss-s
자바기반응용프로그래밍 - 기본구조, 식별자, 데이터타입, 스캐너
상단으로

티스토리툴바