3. 자바 프로그램 기본 구조

zza·2023년 9월 11일
1

Java

목록 보기
3/19

자바 프로그램 기본 구조

  • public: 접근 지정자

  • {Hello 클래스 코드}

  • 메서드 = 함수

  • 메서드 이름만 봐도 반환값을 알 수 있다.

  • 반환값 메서드이름 (인수)

  • main: 프로젝트 실행 시 가장 먼저 실행되는 함수

  • 클래스: 개발 단위

  • 메서드: 코드의 모임 = 함수

  • 문서 주석: 프로그램 최상단에 적음

  • 파이썬과 다르게 변수 선언 시 자료형 먼저 써줘야 한다.
    ex) String hello = "안녕!";

단축키

  • Ctrl + F11 or F11 : 실행 단축키
  • Ctrl + D : 한줄(행,라인) 삭제

식별자

  • 변수: 변하는 수
  • 상수: 변하지 않는 수 - 모두 대문자

변수 선언 방법

  1. 캐멀 표기법: dailyUserTable
  2. 파스칼 표기법: 모든 단어의 첫글자를 대문자
    DailyUserTable
  3. 스네이크 표기법: 모두 소문자
    daily_user_table
  4. 회사 or 프로젝트 커스텀ㄴ

문제

2

1, 2 : 숫자로 시작하거나 기존에 존재하는 키워드는 식별자로 사용할 수 없다.

주석

; (세미콜론)

데이터 타입(자료형)

종류

  • 문자: char. 한 글자만 저장할 수 있다.
    (cf) 파이썬 string은 문자열. 여러 글자 저장 가능

공간 크기 및 기본 값

  • bit : 데이터를 저장하는 한 칸
  • 1byte = 8bit
  • 크기가 클수록 정밀 표현 가능하다.
  • 일반적으로 정수는 int 사용
  • long은 은행, 증권가등에서 사용
  • 2의 8승까지 표기 가능하나, 첫 칸은 부호비트
  • 0은 양수, 1은 음수
    -> 2의7승으로 표현 가능

  • 크기순서만 기억하자
  • 정수는 int, 실수는 double이 기본 세팅되어있는 자료형이다.
    -> float d = 3.14f;
    -> long l = 123456483215113l;
    : float와 long을 쓰고싶을 때는 변수명 앞에서 자료형을 설정하고 값을 대입하고 마지막에 한번 더 f,l을 강조해야 한다.

변수

  • 자료형 변수명 = 값 ;
    //변수 선언과 초기화
  • int math ; //변수 선언
  • math = 100 ; //변수 초기화

  • 변수 이름는 아무리 길어도 상관없다.
  • 메모리 공간의 stack 안에 변수의 주소값이 저장되고, 변수 이름은 따로 저장된다.
  • 변수 이름과 변수의 주소값을 매칭시켜 저장하는 곳은 심볼 테이블이다.
  • stack은 프로그램 실행할 때 실행된다.
  • 심볼 테이블은 사용하는 프로그램(이클립스)의 것을 사용한다.

  • 2진수는 0b, 8진수는 _0, 16진수는 0x로 표기
  • long, float는 맨 뒤에 L, F(대소문자 구분x) 안 쓰면 오류.

-변수 선언 후 초기화하지 않으면 garbage값(쓰레기값)이 들어가 있어 변수 사용 불가하다.

  • char ga1 = '가';
    // 문자 한개 저장시 작음따옴표(') 사용
  • String s = "Java"
    //문자열은 큰따옴표(")

※chap2 - ex1_Literal

★ 기사 시험

문자 정수로 표현

  • 'A'의 아스키코드 = 65
  • 아스키코드: 알파벳과 특수기호 표현하기 위해
  • 유니코드: 각 나라의 문자를 표현하기 위해

이스케이프 코드


\, \n, \t, \', \"

아스키코드


- A = 65

  • ~Z : ~90

- a = 97

  • 변수 선언은 동시에 여러개 가능
    ※cha2 - ex2_VariableType

타입 변환(형 변환)

  • 묵시적 형변환(자동 형변환)
    :범위가 작은 데이터 -> 큰 데이터로 자동 형변환 가능하다.

  • 명시적 형변환(강제 형변환)
    :큰 데이터를 작은 데이터로 형변환할 때는, 반드시 명시해야한다.
    : 값에 손실이 일어날 수 있다.

  • 정수 / 정수 = 정수

  • 정수 / 실수 = 실수

Q) 문제

리터럴

o

x
:컴퓨터는 문자를 모르므로 아스키코드/유니코드로 바꿔 사용하므로 char는 정수 타입의 일종이다. 따라서 덧셈,뺄셈 연산이 가능하다.
char c = 'A'
print(c+1) //'B'

x
:boolean타입은 true, false만 인식 가능하다. 1은 정수형으로 인식.

o

3.0
:정수 / 실수 = 실수

지역변수

※chap2 - ex3_LocalVariable, ex4_VariableScope

  • 각 함수 내에서 선언된 함수는 그 함수 내에서만 사용 가능하다.
  • 지역을 벗어나면 사용 불가능(오류)!

기본 입출력

표준 입출력


  • %d: 정수형(int)
  • %f: 실수형(float, double)
  • pint(), printf()는 \n 기능 x: 한 줄로 출력
    ex)i=97
    %5d, i : 5자리 공백 //___97
    %05d,i : 5자리중 공백에 0 넣어달라 //00097
    -double은 소수점 6개까지 표기

  • %.3 : 소수점 3자리까지 표기

입력 방법


1. import java.util.Scanner;
2. Scanner 생성: 객체 필요
3. 입력 받은 값 저장할 변수 필요

※chap2 - input - ex1_Scanner

package input;

import java.util.Scanner;

public class ex1_Scanner {

	public static void main(String[] args) {
		//입력 받기위해 스캐너 생성
		Scanner in = new Scanner(System.in);
		//python: a = int(input("number: "))
		
		
//		System.out.println("숫자1을 입력하세요:");
//		int n1 = in.nextInt();
//		System.out.println(n1 + 3);
		
		System.out.print("s1: ");
		// String: 문자열을 저장하는 자료형
		String s1 = in.next(); // 스페이스를 누르기 전까지 입력 진행
		String s2 = in.nextLine();	// 엔터를 누르기 전까지 입력 진행
		System.out.println(s1);
	}

}

  • class: 여러가지의 기능을 가진 문서
  • next자료형
  • next: 스페이스 뒤로는 저장 안한다.
  • nextLine: 엔터 뒤로는 저장 안한다.

문제

%x
:8진수는 %o
:printf의 f는 포맷팅을 의미

2.nextLine
:next는 스페이스 기준

profile
zza

0개의 댓글