메서드 정의
A main(B C) {
D
}
반환타입 메서드이름(매개변수타입 매개변수이름) {
메서드바디
}
A : 처리 결과 반환값의 타입
B, C : 메서드 외부와 메서드 내부를 매개해주는 변수
메서드 외부에서 메서드 내부로 전달되어진 값
D : 구체적으로 메서드가 어떤 기능을 수행할지에 대한 코드 작성
return
으로 값 반환
ex) 더하기를 수행하는 기능을 가진 메서드
int add(int namber1, int number2) {
return number1 + number2;
}
메서드 호출
add(1,2);
메서드 이름과 호출 연산자() 로 호출
() 안에는 매개변수에 넣어줄 값 입력
- main 메서드
public static void main(String[] args) { }
자바에서 main 메서드는 진입점 함수이고 반드시 main메서드 필요
변수의 선언과 할당
[데이터타입][변수이름]
int num; //정수형 타입의 변수 num 선언
num = 1; // 변수num에 1 할당 (초기화)
num = 2; // 변수num에 2 할당 (재할당)
초기화 : 변수를 선언하고 처음으로 값을 할당하는 것
int num = 1; //선언과 동시에 초기화
변수명 규칙
final
로 선언 관례적으로 대문자에 _
를 넣어 구분final doule CALCULATOR_PI = 3.14;
값이 저장되는 방식
- 기본타입 : 저장된 데이터의 실제 값을 의미
-정수타입(byte, shirt, int, long)
-실수타입(float, double)
-문자타입(char)
-논리타입(boolean)
- 참조타입 : 데이터가 저장된 곳을 나타내는 주소값
8개의 기본형을 제외한 나머지 타입
1
이 리터럴 (값이라는 표현 대신)int currentAge = 10;
// 정수형 리터럴 10을 정수형 변수 currentAge에 할당
float
타입의 변수에 실수형 리터럴 할당 시 리터럴 뒤에 접미사f
를 붙여줘야 한다.long
타입의 변수에 정수형 리터럴 할당 시 리터럴 뒤에 접미사 L
을 붙여줘야 한다.float a = 22.5f;
long b = 123L;
byte
- 1byteshort
- 2byteint
- 4byte 보통 int 로 사용한다.long
- 8bytebyte bytenum = 123;
short shortnum = 12345;
int intnum = 123456789;
long longnum = 12_345_678_910L;
//숫자가 길면 언더바로 구분 가능
정수형의 오버플로우, 언더플로우
- 오버플로우
자료형이 표현할 수 있는 범위를 넘어 최대값 이상의 값을 표현한 경우 발생된다.
최대값을 넘어가면 해당 데이터 타입의 최소값으로 값 순환- 언더플로우
자료형이 표현할 수 있는 범위 중 최소값 이하의 값을 표현한 경우 발생된다.
최소값을 넘어가면 해당 ㄷ이터 타입의 최대값으로 값 순환
float
- 4bytedouble
- 8bytefloat num = 3.14f //접미사 f 붙여야함
double num1 = 3.14159;
실수형의 오버플로우, 언더플로우
- 오버플로우
값이 음의 최소범위 또는 양의 최대범위를 넘어갔을때
이 때 값은 무한대가 된다.- 언더플로우
값이 음의 최대범위 또는 양의 최소범위를 넘어갔을때
이 때 값은 0이 된다.
boolean
- true / false 를 값으로 가짐 1bytechar
- 작은 따옴표 ''
사용char letter = 'a';
유니코드로 문자를 저장, 숫자를 문자형 변수에 할당하면 변수 참조 시 유니코드로 인식하여 코드를 가진 문자로 변환해준다.
char letter = 65;
System.out.println(letter);
// 출력 결과는 A
논리 타입boolean
을 제외 하고 서로 타입 변환이 가능
- 자동 타입 변환
- 바이트 크기가 작은 타입에서 큰 타입으로 변환할 때 (byte - int)
- 덜 정밀한 타입에서 더 정밀한 타입으로 변환할 때 (정수 - 실수)
byte(1) -> short(2)/char(2) -> int(4) -> long(8) -> float(4) -> double(8)
- 수동 타입 변환
메모리 용량이 더 큰 타입에서 작은 타입으로 변환할 때
캐스팅 이라고 한다.
캐스팅 연산자() 사용하여 괄호 안에 변환하고자 하는 타입 적기//int 타입 선언된 변수intValue를 더 작은 단위인 byte로 변환 int intValue = 128; byte byteValue = (byte)intValue; System.out.println(byteValue); // 오버플로우가 발생하여 -128
result = (char)(num + '0'); // int형을 char형으로 형변환
String 변수명;
으로 선언변수 = "문자열";
변수 = new String("문자열";)
- charAt() 메서드
: 해당 문자열의 특정 인덱스에 해당하는 문자 반환String str = new String("Java"); System.out.println("문자열 : " + str); // "문자열 : ABCD" System.out.println(str.charAt(0)); // 'A' System.out.println(str.charAt(1)); // 'B' System.out.println(str.charAt(2)); // 'C' System.out.println(str.charAt(3)); // 'D'
- compareTo() 메서드
: 해당 문자열을 인수로 전달된 문자열과 사전 편찬 순으로 비교
두 문자열이 같다면 0
해당 문자열이 인수로 전달된 문자열보다 작으면 음수
크면 양수 반환- concat() 메서드
: 해당 문자열의 뒤에 인수로 전달된 문자열을 추가한 새로운 문자열 반환 사전적으로 연결한다는 의미String str = new String("Java"); System.out.println("문자열 : " + str); System.out.println(str.concat("연결")); // Java연결
- indexOf() 메서드
: 해당 문자열에서 특정 문자나 문자열이 처음으로 등장하는 위치의 인덱스를 반환.
전달된 문자나 문자열이 포함되어 있지 않으면 -1 반환String str = new String("Java"); System.out.println("문자열 : " + str); System.out.println(str.indexOf('o')); // -1 반환 System.out.println(str.indexOf('a')); // 1 반환
- trin() 메서드
: 문자열의 맨 앞과 맨뒤에 포함된 모든 공백문자 제거String str = new String(" Java "); System.out.println(str + 'a');// java a System.out.println(str.trim() + 'a');//javaa
- toLowerCase()와 toUpperCase() 메서드
: 문자열 모든 문자 대소문자 변환String str = new String("Java"); System.out.println(str.toLowerCase());//java System.out.println(str.toUpperCase());//JAVA
https://www.javatpoint.com/understanding-toString()-method 스트링 클래스 메서드
- 산술 연산자
+
-
*
/
%(나머지)
double num1 = 9 / 2; // 4.0 int num2 = 9 / 2; // 4 double num3 = 9.0 / 2; // 4.5 //좌항과 우항이 모두 int 형이면 결과도 int 형 소수점 버려짐
- 증감 연산자
num1++; // num1 = num1 + 1;과 같다. num2--; //num2 = num - 1; 과 같다.
전위형 증감연산자 : 증감 연산을 먼저 수행 후 결과값 적용
후위형 증감연산자 : 기존 값 적용 후 증감 연산 수행int num2 = 1; int postfix = num2++; // num2의 값이 먼저 할당 후 1증가 //num2는 2 postfix는 1
- 복합 대입 연산자
num1 += 2; // num1 = num1 + 2; num2 -= 2; // num2 = num2 - 2;
- 비교 연산자
- 대소 비교 연산자 : boolean 을 제외한 타입 사용
>
<
<=
>=
- 등가 비교 연산자 : 모든 타입 사용
==
!=
동등하면 trun, 그렇지 않으면 false- 논리 연산자 : 공통적으로 boolean 타입 반환
&&
-AND 연산자
||
- OR 연산자
!
- NOT 연산자
&&
: 피연산자 두 개가 모두 true일 때 true 반환
두 개 중 하나라도 true가 아닐 시 false 반환
||
: 피연산자 둘 중 하나라도 true면 true 반환
모두 false 인 경우에만 false 반환
!
: true와 false를 반대로 바꾸는 연산자
System.out.print()
System.out.println()
System.out.printf()
System.out.printf("%s%n", "Hello JAVA");//줄바꿈이 된다.
import java.util.Scanner; // Scanner 클래스를 가져온다.
Scanner scanner = new Scanner(System.in); // Scanner 클래스의 인스턴스를 생성
String inputValue = scanner.nextLine(); // 입력한 내용이 inputValue에 저장
System.out.println(inputValue); // 입력한 문자열이 출력
문자열 입력 : nextLine()
정수형 입력 : nextInt()
실수형 입력 : nextFloat()
오늘은 드디어 자바 파트에 들어갔다. 힘들거라고 생각했지만 생각보다 분량이 너무너무너무 많아서 힘들었다,,,페어분이랑 문제 풀이도 했는데 간단하다고 생각했는데 막상 코드로 써보려니 잘 안되었다. 내일은 제어문이라 더 힘들것같다,, 학습 분량이 너무 많다ㅠㅠ