→ 반환값(return)이 없으니.. void를 써준 것!!
→ 패키지의 이름은 모두 소문자⭐ //언더바(_)로 이어줌 : 스네이크 기법
→ 클래스 이름은 대문자로 시작⭐ //HelloWorld : 캐멀기법
**//자바 기본 틀**
package my_first_project;
public class Hello {
// main() : 코드 구동을 위해 사용하는 함수
/*
* 프로그램 명 : 출력 함수
* 작성자 : 예지
* 작성일 : 23.03.14
*/
/*
* CTRL F11 or F11 : 실행 단축키
* CTRL + D 한줄(행,라인) 삭제
*/
public static void main(String[] args) {
// 메인 메소드 내부
System.out.println("Hello Java!!!"); //콘솔창에 메세지를 출력 함수
System.out.println("안녕, 자바!!!"); //실행문
}
}
컴퓨터가 자료 표현
값과 값을 다룰 수 있는 연산의 집합을 의미
8bit = 1byte
1024byte = 1kilobyte
1024kilobyte = 1megabyte
1024megabyte = 1gigabyte
1024gigabyte = 1terabyte
1024TB(terabyte) = 1petabyte
1024PB = 1exabyte
1024EB = 1zetabyte //순서정도..는 기억해!!
프로그램은 기억 공간에 데이터를 보관하고, 각 기억 공간을 변수 Variable로 구분
할당 받은 메모리의 주소 대신 부르는 이름.
프로그램 실행 중 값 변경 가능.
사용되기 이전에 선언 되어야 함.
변수는 데이터를 담는 상자와 같은 것으로 종류가 다양한데, 이를 구분하려고 데이터 타입을 사용
프로그래밍에서 값(Data)를 사용하기 위해 선언하는 것을 변수라고 한다.
자료형 변수명 = 값;
→ 값을 저장하는 메모리 번지에 붙이는 이름
package variable;
public class ex2_Exchange {
public static void main(String[] args) {
int x = 3;
int y = 5;
System.out.println("x: "+x+" y: "+y);
//임시 변수
int temp = x;
x = y;
y = temp;
System.out.println("x: "+x+" y: "+y);
}
→ 컴퓨터에서 소수점을 정하지 않고 위치를 나타내는 수로 표현하는 방식
char a = 'A';
System.out.println(++a);
💡 B
public static void main(String[] args) {
byte var1 = -128;
byte var2 = 127;
// byte var3 = 128; 컴파일 에러발생!!!!!!비상!!!!!
System.out.println(var1-1);
System.out.println(var2+1);
long l1 = 10000000000000000l;
long l2 = 111111111111111L;
System.out.println(l1);
System.out.println(l2); //대문자, 소문자 상관 x
float f1 = 3.14865468765465461366f; //7자리까지 나오고 짤림
float f2 = 3.14F;
System.out.println(f1);
System.out.println(f2);
char c1 = 'A';
// char c2 = "A"; ""쓰면 오류남
String c3 = "abcefgs";
System.out.println(c1);
System.out.println(c3);
}
💡 129
128
10000000000000000
111111111111111
3.1486547
3.14
A
abcefgs
public class ex3_Bool {
public static void main(String[] args) {
boolean isMarried = true;
if(isMarried) {
System.out.println("기혼");
}else {
System.out.println("미혼");
}
}
}
💡 기혼
프로그램 실행 중 변경할 수 없는 데이터를 담는 변수
예를 들어 원주율 값(3.14159)이나 빛의 속도 등
상수 이름은 변수와 구분하려고 모두 대분자로 표기
반드시 fianl 키워드로 지정
자동 타입 변환 ( 묵시적 )
강제 타입 변환 ( 명시적 )
package variabletype.vartype;
public class ex2_VariableScope {
public static void main(String[] args) {
//main 메소드 영역
int i = 0;
System.out.println("함수 호출 전 : "+ i);
change(i);
System.out.println("함수 호출 후 : "+ i);
}
public static void change(int i) {
i = 10;
System.out.println("change 내부 : "+i);
}
}
package variabletype.vartype;
public class ex3_Constant {
public static void main(String[] args) {
// 상수 : 선언이후 코드 내에서 변하지 않아야하는 수
// e x) 12달, 24시간, 로그인 횟수제한, pi
final int MAX_NUM = 100; //상수 선언과 초기화
System.out.println(MAX_NUM);
// MAX_NUM = 80; 선언하면 에러 발생!!!!!!!!!!!
}
}
프로그램의 첫 행에 다음을 추가해 Scanner 클래스의 경로 이름을 컴파일러에 알린다.
→ import java.util.Scanner;
키보드로 데이터를 입력 받기 위해 System.in 객체와 연결된 Scanner 객체를 생성한다.
→ Scanner in = new Scanner(System.in);
Scanner 클래스가 제공하는 다양한 메서드를 이용해 키보드로 데이터를 입력 받는다.
int x = in.nextint(); //정수를 읽어 변수 x에 대입한다.
package input;
import java.util.Scanner;
public class ex1_Scanner {
public static void main(String[] args) {
// 스캐너 객체 생성.
Scanner in = new Scanner(System.in);
System.out.print("숫자1 입력 : ");
int n1 = in.nextInt();
System.out.println(n1);
}
}
System.out.println("s1 : ");
String s1 = in.next();
System.out.println(s1);
//string 입력받을때는 nextLine이 아닌!!! next만 쓰는걸로 우선 기억!!!!!!!!!!!!!⭐
피연산자의 데이터 타입에 따라 결과 값이 다른데, 연산할 두 피연산자의 데이터 타입이 다르면 큰 범위의 타입으로 일치시킨 후 연산 수행
논리 타입을 제외한 기초 타입을 피연산자로 사용, 단 % 연산자는 정수 타입만 사용
비교연산자는 논리 타입을 제외한 기초 타입에만 사용할 수 있지만 ==와 !-는 모든 기초 타입에 사용
논리 연산자는 피연산자의 조건을 결합해서 true와 false를 조사하며, 논리 타입에만 사용
package operation;
public class ex1_Oper1 {
public static void main(String[] args) {
// 동일 자료형 변수는 한번에 여러개 선언 가능
int a = 20, b=7, c=a+b;
System.out.println(c); //27
double d =1.2345678456154520003; //1.234567845615452나옴.. 오차발생!!!!!
System.out.println(d);
int e = (int)(d*100); //괄호에 따라 100이 될수도 123이 될수도
System.out.println(e);
//복합대입 연산자
int i = 0;
i += 2;
i = 1; //양수 1대입
i = -1; //음수 1 대입
System.out.println(i);
}
}
package operation;
public class ex2_Oper2 {
public static void main(String[] args) {
int a= 10, b=7;
// 비교 연산
boolean result = a>b;
System.out.println(result); //true
result = a ==b;
System.out.println(result); //false
//논리 연산
//&&, ||, !
System.out.println(!true); //false
int age = 35;
result = age >= 20;
// 조건식? 연산1:연산2 -> 조건이 true 연산1, false 연산2
String r = result? "성인":"미성년"; //String r = age >=20? "성인":"미성년";앞에 선언 안하고 이렇게 했어도 됐었음
System.out.println(r);
}
}
package operation;
public class ex3_ShortCircuit {
public static void main(String[] args) {
int num = 10;
int i = 2;
// 단락회로 평가
// ⭐⭐⭐⭐ && 연산식1 -> false라면 뒤에 연산식2는 실행 x
boolean value = ((num = num+10) < 10) && ((i=i+2) < 10);
System.out.println(value);
System.out.println(num);
System.out.println(i);
value = ((num=num+10)<10) || ((i=i+2) < 10);
System.out.println(value);
System.out.println(num);
System.out.println(i);
}
}
int a =3;
a*= a+1;
System.out.println(a); //복합대입