Hyogi's Notebook

Day01 JAVA Studying

by 효기’s

- 변수 선언

 

변수 = 하나의 값을 저장할 수 있는 메모리 번지에 붙여진 이름

 

1. 자바 소스파일명 (클래스명)은 대문자로 시직하는게 관례 ex) Test.java

2. 변수명은 소문자로 시작하는 것이 관례 ex) num, numScore


- 정수 타입

정수 → byte, char, short, int, long

실수 → float, double

논리(true, false) → boolean

 

(1byte = 8bit)

byte = 1byte

short = 2byte

char = 2byte

int = 4byte

long = 8byte

 

2진수 = 0b, 0B로 시작하고 0, 1로 작성

8진수 = 0으로 시작하고 0~7 숫자로 작성

10진수 = 소수점이 없는 0~9 숫자로 작성

16진수 = 0x 또는 0X로 시작하고 0~9 숫자나 A,B,C,D,E,F 또는 a, b, c, d, e, f로 작성


- 문자 타입

작은 따옴표 (') 로 감싼 것을 문자 리터럴 이라고 한다.

ex) char a1 = 'A'


- 실수 타입

float = 4byte

double = 8byte


- 논리 타입

논리 리터럴은 true false 이다.


- 문자열 타입

큰따옴표 (") 로 감싼 여러 개의 문자들은 유니코드로 변환되지 않는다.

ex) String var1 = "A"


- 자동 타입 변환

값의 허용 범위가 작은 타입이 허용범위가 큰 타입으로 대입될 때 발생.

 

byte < short, char < int < long < float < double


- 강제 타입 변환

큰 허용 범위 타입은 작은 허용 범위 타입으로 자동 타입 변환이 될 수 없다.

ex) 작은 허용 범위 타입 = (작은 허용 범위 타입) 큰 허용 범위 타입


- 문자열을 기본 타입으로 변환

String → byte   ex) byte value = Byte.parseByte(str)

String → short   ex) short value = Short.parseShort(str)

String → int   ex) int value = Integer.parseInt(str)

String → long   ex) long value = Long.parseLong(str)

String → float   ex) float value = Float.parseFloat(str)

String → double   ex) double value = Double.parseDouble(str)

String → boolean   ex) boolean value = Boolean.parseBoolean(str)


- 콘솔로 변수값 출력

System.out.println(내용);  내용을 출력하고 행을 바꿔라

System.out.print(내용);  내용을 출력하고 행은 바꾸지 말아라

System.out.printf("행식 문자열", 값1, 값2);  형식 문자열에 맞추어 뒤의 값을 출력해라

 

%d 정수

%6d 6자리 정수, 왼쪽 빈자리 공백

%-6d 6자리 정수, 오른쪽 빈자리 공백

%06d 6자리 정수, 왼쪽 빈자리 0채움

 

실수

%10.2f 정수 7자리 + 소수점 + 소수 2자리, 왼쪽 빈자리 공백

%-10.2f 정수 7자리 + 소수점 + 소수 2자리, 오른쪽 빈자리 공백

%010.2f 정수 7자리 + 소수점 + 소수 2자리, 왼쪽 빈자리 0 채움

 

%s 문자열

%6s 6자리 문자열, 왼쪽 빈자리 공백

%-6s 6자리 문자열, 오른쪽 빈자리 공백

 

\t 탭(tab)

\n 줄바꿈

%% %


- 입력 데이터 

import java.util.Scanner;

Scanner scanner = new Scanner(Systen.in);

String inputData = scanner.nextLine();


- 부호/증감연산자

증감 연산자(++, --) 는 변수의 값을 1 증가시키거나 1 감소시키는 연산자이다.

증감 연산자가 변수 앞에 있으면 먼저 1증가 또는 1감소 시킨후에 다른 연산을 수행

증감 연산자가 변수 뒤에 있으면 모든 연산을 끝낸 후 변수를 1증가 또는 1감소시킨다.


- 오버플로우 언더플로우

오버플로우 = 타입이 허용하는 최대값을 벗어나는 것

언더플로우 = 타입이 허용하는 최소값을 벗어나는 것


- 논리연산자

AND(논리곱) &, && 피연산자가 모두 true일 경우에만 true

OR(논리합) |, || 피연산자 중 하나만 true이면 연산 결과는 true

XOR(배타적 논리합) ^ 피연산자가 하나는 true이고 다른 하나가 false일 경우에만 연산 결과가 true

NOT(논리부정) ! 피연산자의 논리 값을 바꿈


- 비트 이동 연산자

a << b 정수 a의 각 비트를 b만큼 왼쪽으로 이동, 오른쪽 빈자리는 0으로 채움 a * 2^b와 동일

a >> b 정수 a의 각 비트를 b만큼 오른쪽으로 이동, 왼쪽 빈자리는 최상위 부호 비트와 같은 값으로 채움 a/2^b와 동일

a >>> b 정수 a의 각 비트를 b만큼 오른쪽으로 이동, 왼쪽 빈자리는 0으로 채움


- 삼항 (조건) 연산자

조건식(피연산자1) ? 값 또는 연산식(피연산자2) : 값 또는 연산식(피연산자3)


-연산의 우선순위

증감(++, --), 부호(+, -), 비트(~), 논리(!) > 산술(*, /, %) > 산술(+, -) > 쉬프트(<<, >>, >>>) > 비교(<, >, <=, >=, instanceof) > 비교(==, !=) > 논리(&) > 논리(^) > 논리(|) > 논리(&&) > 논리(||) > 조건(?:) > 대입(=, +=, ...)


- if문

if문은 조건식의 결과에 따라 블록 실행 여부가 결정된다.

 

if(조건식) {

   실행문;

 

}

 

if(조건식) {

  조건식의 true

} else {

  조건식이 false

}

 

if(조건식1) {

  조건식1이 true

} else if(조건식2){

  조건식2가 true

} else {

  조건식1 및 조건식2가 false

}


첫글자를 대문자 : 클래스

전체 대문자 MAX : 상수(변하지 않는 값) final static int MAX = 1000;

단어 + 단어 두번째 단어의 첫글자는 대문자로 씀. black&white => blackWhite

글자수는 최대 32자

 

private : 외부에서 절때 접근 불가능.

default : 같은 패키지까지 접근 가능.

protected : 외부 패키지를 상속받은 sub class 까지만 접근가능

public : 아무나 접근가능

 

main method

- 프로젝트 전체에 하나만 존재하는 함수.

- 프로그램 시작과 끝을 담당.

 

 

★ 영어로 답을 쓰는 문제 나옴

 

추상화

abstraction

객체의 공통적인 속성과 기능을 추출하여 정의하는것을 의미합니다.


 

다형성

polymorphism

어떤 객체의 속성이나 기능이 상황에 따라 여러가지 형태를 가질 수 있는 성질을 의미합니다.


상속

Inheritance

기존의 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법요소를 의미합니다.

해당 상위 클래스로부터 확장된 여러 개의 하위 클래스들이

모두 상위 클래스의 속성과 기능들을 간편하게 사용할수 있도록하며

반복적인 코드를 최소화 하고 공유하는 속성과 기능에 간편하게 접근하여 사용합니다.


캡슐화

Encapsulation

서로 연관있는 속성과 기능들을 하나의 캡술로 만들어 데이터를 외부로부터 보호하는 것을 말합니다.

캡슐화를 하는 이유는 크게 두가지인데

데이터 보호(data protection) - 외부에서 클래스에 정의된 속성과 기능들을 보호합니다.

데이터 은닉(data hiding) - 내부의 동작을 감추외부에는 필요한 부분만 노출합니다.


new → 동적 메모리 할당

 

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

Day05 JAVA Studying  (0) 2023.07.07
Day04 JAVA Studying  (0) 2023.07.06
Day03 JAVA Studying  (0) 2023.07.05
Day02 JAVA Studying  (0) 2023.07.04
Day02 [예제] 문자열 동등성 비교의 결과차이  (0) 2023.07.04

블로그의 정보

감성 개발자 효기

효기’s

활동하기