자바 웹개발 국비과정/Java Programming

객체, 스캐너 (22.10.28)

FeelsKim 2022. 11. 14. 09:21

.jar : 자바 라이브러리 압축파일 형식

자바의 압축파일명 : 자바 클래스 파일을 압축

 

패키지 단위로 압축 ★

패키지 : 비슷한 종류의 클래스들을 담은 폴더(디렉토리)

라이브러리 : 미리 사용할 목적으로 만들어 놓은 패키지

 

ex)

java.lang : 자바의 기본 패키지 (임포트 불필요)

java.net : 네트워크 관련 패키지

>> 자바를 배우는 것은 라이브러리를 배우는 것

>> 공식 API문서에서 확인가능 (https://docs.oracle.com/javase/8/docs/api/)

 

자바 프로젝트 생성 순서 ( ctrl + N )

*프로젝트 : 패키지 단위

1. 프로젝트 생성

2. 패키지 생성 >> 패키지명은 도메인의 역순 ex) org.java.variableex

com.java

org.java

*(TIP : 기본적으로 내장된 패키지명과 같을경우 충돌되므로 유의)

3. 클래스 생성 >> 첫 글자는 대문자 (개발자들간의 약속)

키워드(예약어) : 이미 존재하는 클래스명

이클립스 프로그램 실행방법

  1. 우클릭 (Run as > Java Application)
  2. 상단 메뉴 (녹색 재생버튼)
  3. 바로실행 ( Ctrl + F11 )
  4.  

변수 (Variable)와 자료형 (Data Type)

 

변수 : 하나의 자료(Data)를 메모리에 저장할 수 있는 공간

1) 저장공간 (메모리 주소)

2) 참조값 (메모리 주소에 할당되는 값)

(자료 >> 텍스트, 이미지, 파일, 동영상, 객체 등)

 

변수의 동작순서

  1. 변수선언 (기본적으로 같은 공간에서 동일한 이름의 변수명 사용 불가 > 예외존재)
  2. 변수를 초기화 >> Data를 추가
  3. 변수를 메모리에 할당

주석 : 소스코드에 적는 메모. (컴파일 x 언어마다 주석처리 방법 다름)

// : 한 줄 주석

/ / : 여러 줄 주석

 

데이터 단위

bit : 데이터의 기본단위 (1bit > 0 or 1)

byte : 메모리의 기본단위 (8bit)

1byte = 8bit (-128부터 +127까지 256까지(2^8)의 데이터를 담을 수 있음)

ex) 64bit 운영체제 >> 8byte

 

자바의 기본자료형 (Primitive Types) >> 1개의 데이터

크기(byte) 1 2 4 8

정수형 byte short int long

실수형 float double

문자형 char (C언어에서는 1byte)

논리형 boolean

1byte = 8bit >> -2^7 ~ +2^7-1 (-128~127) >> 2진수를 10진수로 바꾸면 데이터 손실 발생(-1)

1short = 16bit >> -2^15 ~ +2^15-1

1int = 4byte = 32bit >> -2&31 ~ +2^31-1

★변수에 데이터유형 범위를 벗어난 값을 넣으면 에러(Type mismatch) 발생

★같은 크기의 데이터형이어도 실수값이 더 큼 (실수 > 정수)

 

Casting(형 변환)

자동형변환 규칙

  1. 큰 자료형 + 작은 자료형 ⇒ 큰 자료형으로 변환10 + 1.1 = 10.0 + 1.1
  2. int + double = double
  3. int형 아래 자료형의 연산시 ⇒ int형으로 변환byte b2 = 10;
  4. byte b3 = b+b2; (byte + byte ⇒ int + int)
  5. byte b = 10;

강제변환

  1. 변수의 타입 변환
  2. 데이터의 타입 변환int i = (int) 1.1; ⇒ 소수점 이하(0.1) 소실byte b3 = (byte)(b+b2); ⇒ b+b2를 먼저 계산 후에 byte로 강제 변환
  3. int b3 = b+b2;
  4. (자료형) 데이터;

자바의 객체형 타입 >> {속성:값} (메모리 주소)

참조형(객체형==Object형) ⇒ new 객체();

*(참조형 기본 : null)

  1. 문자열(String) - 데이터 타입이 아닌 객체(클래스)
      **str1 = “문자열”;**
    
    String str2 = “문자열”; ⇒ 일반적인 형태
  2. String str1 = new String();
  3. 배열(Array)int[] arr1 = new Array();
  4. int[] arr2 = {1,2,3,4,5};
  5. new Array();
  6. 클래스(Class) - 객체(인스턴스)를 만들기 위한 설계도2) 사용자정의 클래스 (개발자가 직접 작성)
  7. 1) Java library (미리 만들어진 클래스)
  8. 인터페이스(interface)
  9. new를 생성 불가능

 

시스템 출력

System.out.println(); ⇒ 출력시 엔터(줄바꿈) 포함

System.out.print(); ⇒ 형식(int, float, double 등)에 구애받지 않고 문자를 그대로 출력.

                                                   **줄바꿈 필요 없을 때 사용**

System.out.printf(”%d”, 10); ⇒ 서식문자(형식을 신경써야할 때) 출력시 사용

 

변수 출력

System.out.println(”HelloWorld !”);

클래스명.속성.메소드(메소드 실행에 필요한 값)

System.out.println(”문자열”+변수);

문자열은 그대로, 변수의 참조값이 출력

*유용한 단축키

Ctrl + Alt + 방향키(아래) : 줄단위 복붙

Alt + 방향키(위,아래) : 줄단위 위치 바꾸기

 

변수 명명규칙

.키워드(예약어 : 기본적으로 이미 정의된 이름)를 사용할 수 없다.

.숫자로 시작하지 못함

.공백 불가

._, $ 이외의 특수문자 불가

.소문자로 시작

.다른 문자가 시작되면 대문자로 구분

.영어 사용

 

변수의 종류 (종류에 따라 메모리 저장 위치가 다름)

  1. 객체 변수 (인스턴스 변수) > Non-Static Field인스턴스를 생성 후 접근
  2. 클래스 내부의 변수
  3. 클래스 변수 (클래스 멤버)
  4. 인스턴스를 생성하지 않아도 접근 가능
  5. 지역 변수 (메소드 안에 선언)
  6. 메소드 안의 변수
  7. 인자변수 (매개인자)메소드 매개인자 (호출하기 위한 변수?)
  8. 지역변수의 일종
  9. 객체 참조 변수
  10. 객체(인스턴스)의 주소값을 저장

 

상수 : 수식에서 변하지 않는 값(변수)

*상수를 사용하는 경우 : 변하지 않는 값, 의미있는 값을 사용할 때

  1. 상수의 선언 >> 선언된 상수는 변경 불가능
  2. final int MAN; (final 상수타입 상수명;) >> 상수명은 보통 대문자로
  3. 상수의 사용>> J에는 값을 담을 수 있는 기회가 한 번만 허락됨
  4. J = 10; (상수명 = 값;)
  5. 상수의 명명
  6. 상수명은 대문자 사용

 

스캐너(Scanner) ⇒ 콘솔에서 직접 입력을 받는 방법

rt.jar > java.util 패키지에서 임포트 (import java.util.Scanner;)

콘솔에 입력하는 동안 임시저장소(버퍼)에 저장

 

시스템 입력

Scanner scn = new Scanner(System.in);

String str = scn.next();

Int num = scn.nextInt();

scn.next(); // next() - 공백 미포함 ex) ”이름”,”문자열”

scn.nextLine(); // nextLine() - 공백 포함 ex) “문자열 입력”

scn.nextInt(); // nextInt() - 정수형 입력

scn.nextDouble(); // nextDouble() - 실수형 입력

  1. String(문자열)으로 입력받기 :
  2. next() (공백 기준으로 입력값 구분)혹은 nextLine() (줄바꿈 기준으로 입력값 구분) 사용
  3. Int(정수)로 입력받기 :
  4. nextInt() 사용
  5. 공백 또는 개행(줄바꿈)을 기준으로 읽는다.

'자바 웹개발 국비과정 > Java Programming' 카테고리의 다른 글

다차원배열 (22.11.04)  (0) 2022.11.14
배열 (22.11.03)  (0) 2022.11.14
반복문 (22.11.01)  (0) 2022.11.14
연산자, 제어문 (22.10.31)  (0) 2022.11.14
Java (22.10.27)  (0) 2022.11.08