title.java (java source code; 우리가 친 코드)
title.class 변환 (java appilication; 컴퓨터가 이해할 수 있는 언어로 바꿈)
Java Virtual Machine(자바 가상 머신; class 파일 읽음
public class Datatype{ //파일명대로 설정해주어야한다.
public static void main(String[] args) {
System.out.println(6); // Number
System.out.println("six"); // String
System.out.println("6"); // String 6
System.out.println(6+6); // 12; 계산 가능
System.out.println("6"+"6"); // 66
System.out.println(6*6); // 36
// System.out.println("6"*"6");
// 문자열끼리는 계산이 안된다.
System.out.println("1111".length()); // 4 문자열 길이 구하는 메소드
}
}
public class Number {
public static void main(String[] args) {
// Operator
System.out.println(8 + 2); // 10
System.out.println(8 - 2); // 6
System.out.println(8 * 2); // 16
System.out.println(8 / 2); // 4
System.out.println(Math.PI); // 3.141592653589793
System.out.println(Math.floor(Math.PI)); //4
System.out.println(Math.ceil(Math.PI)); //3
System.out.println(Math.round(1.6)); //2
}
}
public class StringOperation {
public static void main(String[] args) {
// Character VS String
System.out.println("Hello World"); // String
System.out.println('H'); // Character 한개의 문자
System.out.println("H");
// new line
System.out.println("Hello \nWorld"); //줄바꾸긱
// escape \"\" 이런 식으로 큰 따옴표 출력 가능
System.out.println("Hello \"World\"");// Hello "World"
//길이
System.out.println("Hello World".length()); // 11
//대체하기
System.out.println("Hello, [[[name]]] ... bye. ".replace("[[[name]]]", "hs"));
// Hello, hs ... bye.
}
}
public class Casting {
public static void main(String[] args) {
double a = 1.1; //실수
double b = 1;
int c = 5; //정수
double b2=(double) 1; //상관없다.
System.out.println(b2); //1
// int c = 1.1;
double d = 1.1;
int e = (int) 1.1; //버리는 값이 생기므로 정확히 명시해줘야 한다.
System.out.println(e); //1
// 1 to String
String f = Integer.toString(1);
System.out.println(f.getClass()); //string
//String to double
String str ="55";
double str1 = Double.parseDouble(str);
System.out.println(str1);
//Double to string
double num=12.11;
String num1 = Double.toString(num);
System.out.println(num1);
System.out.println(num1.getClass());//class java.lang.String
}
}
정수에서 실수로 변경할 때는 버리는 값이 없어서 딱히 명시해줄 필요없다.
실수에서 정수로 변경할 때는 버리는 값이 생기므로 반드시 명시해줘야한다.
casting 하는 다양한 방법이 있다. (reference 참고)
정의하고자 하는 변수들과 메소드들의 묶음
클래스라는 팀이 있다면, 그 속의 다양한 역할을 맡은 팀원들이 메소드가 된다.
이클립스 상단의 Window - Show View - Outline 의 클래스의 포함된 변수와 메소드 확인 가능
클래스의 동작을 나타내는 함수
예를 들어 Math의 floor, ceil / PrintWriter의 write, close 등이 메소드
Refactor-Extract Method (Alt+Shift+M) 로 메소드를 만들 수 있다.
Refactor - Convert Local Variable to Filed로 지역 변수(Filed)를 전역 변수로 변경해 메소드의 파라미터를 없앨 수 있다. 전역변수로 변경하고 main 메소드 안에서 값을 지정해주면 된다.
//클래스
public class Animal {
...
}
//객체와 인스턴스
public class Main {
public static void main(String[] args) {
Animal cat, dog; // '객체'
// 인스턴스화
cat = new Animal(); // cat은 Animal 클래스의 '인스턴스'(객체를 메모리에 할당)
dog = new Animal(); // dog은 Animal 클래스의 '인스턴스'(객체를 메모리에 할당)
}
}
인스턴스는 객체에 포함되는 개념이다.
인스턴스는 어떤 원본(추상적인 개념)으로부터 ‘생성된 복제본’을 의미한다.
다양한 값을 넣어 똑같은 클래스를 여러 번 사용하고 싶을 때 사용한다.
여러 번 사용할 클래스의 static 키워드를 제거해주어야 사용 가능하다.
if(income >= 10000.0) {
dividend1 = income * 0.6;
dividend2 = income * 0.3;
dividend3 = income * 0.1;
} else if(income>=5000.0 && income<10000.0){
dividend1 = income * 0.5;
dividend2 = income * 0.3;
dividend3 = income * 0.2;
} else{
dividend1 = income * 1.0;
dividend2 = income * 0;
dividend3 = income * 0;
}
논리 연산자
and: &&
or: ||
not: !
비트 연산자(이진법)
&: 같은 위치에 모두 1이 존재해야 1이 된다.(and 과 비슷)
ex) 1001 & 0001 == 0001
|: 어떤 위치든 1이 있으면 1이된다. (or 과 비슷)
ex) 1000 | 0001 == 1001
public class AccountingArrayApp {
public static void main(String[] args) {
// string 역시 배열이다.
// ....
double[] dividendRates = new double[3]; // 배열 길이
dividendRates[0] = 0.5;
dividendRates[1] = 0.3;
dividendRates[2] = 0.2;
double dividend1 = income * dividendRates[0]; //인덱스 0부터 시작
double dividend2 = income * dividendRates[1];
double dividend3 = income * dividendRates[2];
//인덱스로 접근 가능
double[] dividendRates = new double[3];
dividendRates[0] = 0.5;
dividendRates[1] = 0.3;
dividendRates[2] = 0.2;
int i = 0;
while (i < dividendRates.length) { //조
System.out.println("Dividend : " + income * dividendRates[i]);
i = i + 1;
}
// double dividend1 = income * dividendRates[0];
// double dividend2 = income * dividendRates[1];
// double dividend3 = income * dividendRates[2];
// System.out.println("Dividend 1 : " + dividend1);
// System.out.println("Dividend 2 : " + dividend2);
// System.out.println("Dividend 3 : " + dividend3);
public : 외부 클래스가 자유롭게 사용 가능
protected: 같은 패키지 또는 자식 클래스에서만 사용 가능
private: 개인적인 것이라 외부에서 사용 불가능
static: 객체마다 가질 필요가 없는 공용으로 사용하는 필드, 인스턴스 필드를 포함하지 않는 메소드
final: 한 번 값이 정해지면 바꿀 수 없는 필드
static final: 모든 영역에서 고정된 값으로 사용하는 상수
Reference:
쉽게하는 자바1_생활코딩, 부스트코스 과정을 통해 공부한 내용입니다.