해당글은 정리가 되어 있지 않으므로 귀찮은 필자가 다시 수정 예정입니다 😂^^
자바는 기본으로 본체가 'Class'로 이루어져있음.
public 접근지정자에 대해 설명
public class test {
public static int sum(int n, int m ) { // ┐
return n + m; // │ 메서드
} // ┘
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 20;
int s;
char a;
s = sum(i, 10);
a = '?';
System.out.println(a);
System.out.println("Hello");
System.out.println(s);
}
}
클래스 만들기
Hello 이름의 클래스 선언
public class Hello
클래스는 2가지로 정의 되어있음
필드(인스턴스 변수)와 메서드
개에 대한 정보를 알 수 있는 클래스를 작성해보자
public class Dog {
public String name;
public int age;
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
public void showDogName() {
System.out.println("my name is " + this.name);
}
public static void woof() {
System.out.println("Woof! woof!");
}
public static void main(String[] args) {
Dog Baduk = new Dog("Baduk", 3);
Baduk.showDogName();
}
}
대입연산자
System.out.println() 메서드는 콘솔에 출력을 해주는 메서드임을 인지
Java가 작동하려면 JVM이 필요함
JVM은 클래스를 객체로 만들고(실행할 수 있는 코드로 변환 시키고),
fn.java => fn.class(JVM이 알아먹느 녀석)
이 fn.class가 JVM 위에 올라가서 하는데
이때 heap 공간 위에 올라감
어쨌건간에 main() 함수는 기본이다.
메인함수 => 클래스호출 -> 힙공간 할당 ->
.class => object 라는 형태로 바뀜
class는 메모리 상에 존재하고 있다.
main method가 static 인 이유
static 메서드는 static으로 선언된 메서드밖에 가져올 수 없음
main()메서드를 가지고 있는 클래스는 하나여야 한다
main 메서드에서 new 연산자를 통해 다른 클래스를 가져오는 형식임.
변수는 메모리 공간을 할당하고 그곳에 이름을 붙인 것과 같다.
int i = 20;
레퍼런스 = 주소, 객체에 대한
https://codinglevelup.tistory.com/134
클래스 이름은 대문자로 시작
리터럴
정수 리터럴
10진수, 8진수, 16진수, 2진수 리터럴
15 -> 10진수 리터럴 15
015 -> 0으로 시작하면 8진수 .십진수로 13
0x15 -> 0x로 시작하면 16진수. 십진수로 21
0b0101 -> 0b로 시작하면 2진수. 십진수로 5
정수 리터럴은 int 형으로 컴파일
long 타입 리터럴은 숫자 뒤에 L 또는 l을 붙여 표시
실수 리터럴
소수점 형태나 지수 형태로 표현한 실수
float, double
단일 인용부호(' ')로 문자 표현
사례_ W, A 가, *, 3 등
기본 타입 이외의 리터럴
null 리터럴
문자열 리터럴
상수 선언
- final 키워드 사용
- 선언 시 초기값 지정
- 실행 중 값 변경 불가
final double PI = 3.141592
자동 타입 변환
작은 타입은 큰 타입으로 자동 변환
- 컴파일러에 의해 이루어짐
치환문(=)이나 수식 내에서 타입이 일치하지 않을 때
long m = 25;
강제 타입 변환
circleArea.java
import java.util.*;
public class CircleArea {
public static void main(String[] args) {
final double PI = 3.14;
double radius = 10.0;
double circleArea = radius * radius * PI;
Scanner sc = new Scanner(System.in);
sc.nextInt();
System.out.println("원의 면적 = " + circleArea);
}
}
Scanner를 이용한 콘솔입력받기
```java
import java.util.Scanner;
public class ScannerEx {
public static void main(String[] args) {
System.out.println("이름, 도시, 나이, 체중, 독신 여부를 빈칸으로 분리하여, 입력하세요.");
Scanner sc = new Scanner(System.in);
String name = sc.next();
System.out.println("이름은 " + name + ", ");
String city = sc.next();
System.out.println("도시는" + city + ", ");
int age = sc.nextInt();
System.out.println("나이는 " + name + "살, ");
double weight = sc.nextDouble();
System.out.println("체중은" + weight + "kg, ");
boolean single = sc.nextBoolean();
System.out.println("독신여부는 " + single + "입니다.");
sc.close();
}
}