비트 연산자와 삼항 연산자부터 중첩된 반복문, 객체 지향 프로그래밍과 클래스부터 메소드까지
비트 논리연산
정수 자료형만 비트 연산 가능, 연산의 결과는 int
비트 쉬프트 연산
>> 빈자리는 0
<< 빈자리는 왼쪽 끝 비트 값
>>> 왼쪽 비트를 오른쪽 수 만큼 이동(빈자리는 0)
연산자 우선순위
일차식( (),[] ) → 단항(!,++,--,+,-) → 산술(%/+-) → 비트 이동(<<,>>) → 관계(<>,<=,>=,==,!=) → 비트(&,^,|) → 논리(&&,||) → 조건(?:) → 대입(=,+=,-=,*=,%=,/=)
10진수 to 2진수
Integer.toBinaryString(매개변수);
조건문
조건문엔 Boolean 변수, 비교연산, 논리연산이 들어갈 수 있다
switch문
- 조건식의 변수 값이나 연산식에 따라 실행문을 선택 실행한다
- 조건식에 포함될 수 있는 자료형엔 byte, short, int, char, String(java7 이상부터)
- break를 안 넣어주면 멈추지 않고 모든 문장을 실행
랜덤 수 뽑기 예제
int answer = (int)(Math.random()*100)+1;
객체 지향 프로그래밍 언어의 특징
(1) 상속 (2) 다형성 (3) 추상화 (4) 캡슐화
- 상속은 코드의 중복을 제거한다
- 캡슐화는 관련있는 속성이나 기능들을 묶어 관리하기 편리하게끔 한 것
- 캡슐화는 속성이나 기능을 객체 외부의 잘못된 처리에도 문제가 없도록 보호(=정보 은닉)
클래스란?
- 프로그램을 실행하진 않고, 객체 생성을 위한 설계도를 작성하는 것, 객체 생성을 위함
- 클래스를 사용해서 객체를 생성하는 것을 인스턴스화라고 한다
필드란?
- 객체의 고유한 속성, 상태 값을 저장하는 곳. 클래스 안의 변수에 해당
- 필드엔 클래스 변수와 인스턴스 변수가 있다
- 클래스 변수와 인스턴스 변수는 둘 다 클래스 내에 선언
클래스 변수
- static을 붙여서 선언, 클래스가 메모리에 로드되는 시점에 생성된다
- 모든 객체에서 공유됨
- 클래스명.클래스변수명의 형태로 사용
인스턴스 변수
- 객체 생성 시 생성된다, 객체마다 서로 다른 값 부여
- 객체명.인스턴스변수명의 형태로 사용