[Java] 8μΌμ°¨ : ν΄λμ€(class)μ κ°μ²΄(Object) λ©μλ(1)
λ νΌλ°μ€ λ³μ(Reference Variables)
κΈ°λ³Ένμ μ μΈν λλ¨Έμ§ νμ , μ£Ό κΈ°μ΅ μ₯μΉμ μ μ₯λμ΄ μλ κ°μ²΄μ μ£Όμ κ°μ κ°λ₯΄ν΄
μλ°μμ μ 곡νλ μ°Έμ‘° ν(λ νΌλ°μ€ λ³μ) | |
---|---|
λ°°μ΄ μ°Έμ‘°ν | λ°°μ΄ κ°μ²΄λ₯Ό μ°Έμ‘°νκΈ° μν μλ£ν |
ν΄λμ€ μ°Έμ‘°ν | ν΄λμ€ κ°μ²΄λ₯Ό μ°Έμ‘°νκΈ° μν μλ£ν |
μΈν°νμ΄μ€ μ°Έμ‘°ν | μΈν°νμ΄μ€ κ°μ²΄λ₯Ό μ°Έμ‘°νκΈ° μν μλ£ν |
enum μ°Έμ‘°ν | μ΄κ±°ν νμ |
λ νΌλ°μ€ λ³μ μ μΈμΈμ€ν΄μ€κ° μμ±λ μνκ° μλ κ°μ²΄μ μμΉλ₯Ό μ μ₯ν λ³μλ§ μ μΈ ν μνλ‘ λ°λ‘
μ¬μ©ν μ μκ³ new μ°μ°μλ₯Ό μ΄μ©νμ¬ λ©λͺ¨λ¦¬λ₯Ό ν λΉ ν νμ μ¬μ© κ°λ₯
μΈμ€ν΄μ€ (κ°μ²΄) μμ±
κ°μ²΄μ μμ±μ new μ°μ°μλ₯Ό μ΄μ©νμ¬ μμ±
new λ€μμ ν΄λμ€λͺ ([μΈμ,...]);λ ν΄λμ€μ μμ±μλ₯Ό μλ―Έ
μμ±μλ ν΄λμ€μ μΈμ€ν΄μ€μΈ κ°μ²΄ μμ± λ° μμ±λ κ°μ²΄μ λ©€λ²λ₯Ό μ΄κΈ°νμν€λ μμ μ λ΄λΉνμ
λ©μλ(Method)
μμ±λ κ°μ²΄κ° μνν μ μλ μ°μ° λλ νμλ₯Ό κΈ°μ ν κ²
λ©μλ = ν¨μμ΄κΈ° λλ¬Έμ ν¨μκ° κ°μ§κ³ μλ νΉμ±, μ¦
ν¨μλ λ¦¬ν΄ κ°μ ν(type)μ λ¨Όμ μ§μ νκ³ ν¨μ μ΄λ¦μ μ΄ ν λ§€κ°λ³μλ€μ λμ΄νλ λ°©μμΌλ‘ μ μ
λ©μλ κ΅¬μ± νμ | |
λ©μλ λ¦¬ν΄ νμ | λ©μλμμ μ²λ¦¬λ κ²°κ³Όλ₯Ό νΈμΆν κ³³μΌλ‘ λλλ € μ€λμ λ°μ΄ν°νμ μλ―Έ μ²λ¦¬λ κ²°κ³Όλ₯Ό νΈμΆν κ³³μΌλ‘ λλλ € μ€ λ°μ΄ν°κ° μμλλ voidνμ μ¬μ© |
λ©μλ μ΄λ¦ | μλ³μλ‘ μ¬μ©μμ μν΄ λ§λ€μ΄μ§λ©°, μΌλ°μ μΌλ‘ μλ¬Έμλ‘ μμ |
λ©μλ νλΌλ―Έν°(parameter,νμ λ§€κ°λ³μ,κ°μΈμ) | λ©μλλ₯Ό νΈμΆν κ³³μμ λ©μλμ κ°μ μ λ¬ν λ μ¬μ©νλ€ νλΌλ―Έν°λ μ§μλ³μ(local variable)λ‘ λ©μλ λ΄μμλ§ μ ν¨ν λ²μλ₯Ό κ°λλ€ |
λ©μλ μ½λ | λ©μλμ μ€μ ꡬν λ΄μ© |
μ§μλ³μ(local variable) | μ μΈν λ©μλ λ΄μμλ§ μ¬μ©κ°λ₯ λ©μλλ₯Ό νΈμΆ ν λ stack λ©λͺ¨λ¦¬ μμμ λ©λͺ¨λ¦¬λ₯Ό ν λΉ λ°μΌλ©°, λ©μλλ₯Ό λΉ μ Έ λκ°λ©΄ λ©λͺ¨λ¦¬κ° ν΄μ λλ€. |
λ©μλ λ¦¬ν΄ κ° | νΈμΆν κ³³μΌλ‘ λ¦¬ν΄ κ°μ λκΈ°λ©΄μ, νΈμΆν μͺ½μΌλ‘ μ μ΄κ° λμ΄κ° return λλ κ°μ λ©μλ λ¦¬ν΄ νμ κ³Ό λμΌν μλ£ν μ΄κ±°λ μμμΌ νλ€. λ©μλ λ¦¬ν΄ νμ μ΄ voidνμΈ κ²½μ° 'return;'κ³Ό κ°μ΄ κΈ°μ νκ±°λ μλ΅ ν μ μλ€. |
λ©μλ μ κ·Ό μ μ΄μ | |
private | ν΄λμ€ λ΄λΆμμλ§ μ κ·Ό κ°λ₯νλ©° μΈλΆμμλ μ κ·Όν μ μλ€ |
μλ΅ν κ²½μ°(λν΄νΈ) | λμΌν ν¨ν€μ§(ν΄λ)μ μλ ν΄λμ€μμλ§ μ κ·Ό κ°λ₯ |
protected | λμΌν ν¨ν€μ§(ν΄λ)μ μλ ν΄λμ€ λ° μλΈν΄λμ€μμ μ κ·Ό κ°λ₯ |
public | μ μ½ μμ΄ μ΄λμμλ μ κ·Ό κ°λ₯ |
Ex01.
package ch06.unit03;
public class Ex01 {
public static void main(String[] args) {
Test1 t = new Test1();
t.sub(10);
// int n = t.sub(10);
}
}
class Test1 {
/*
μ κ·Όμ μ΄ λ¦¬ν΄νμ
λ©μλλͺ
([λ§€κ°λ³μνμ
λ§€κ°λ³μ]) {
// μ½λ
}
- λ§€κ°λ³μλ μ§μ λ³μλ‘ λ©μλμμμλ§ μ¬μ© κ°λ₯
- μ§μλ³μ(λ§€κ°λ³μ)λ λ©μλλ₯Ό νΈμΆν λ λ©λͺ¨λ¦¬λ₯Ό ν λΉ λ°κ³
λ©μλλ₯Ό λΉ μ Έ λκ°λ λ©λͺ¨λ¦¬κ° ν΄μ
*/
public int sub(int n) { // n:λ§€κ°λ³μ(μ§μλ³μ)
int s = 0; // μ§μλ³μ(μ€ν
λ©λͺ¨λ¦¬ 곡κ°μ λ©λͺ¨λ¦¬ ν보)
s = n + 5;
for(int i=0; i<s; i++) {
System.out.print("-");
}
System.out.println();
return s; // λ°ν κ°μ κ°μ§κ³ νΈμΆν κ³³μΌλ‘ λμκ°λ€.
}
}
Ex02. λ§€κ°λ³μλ₯Ό λ°°μ΄λ‘ λ겨 λ°μμ
package ch06.unit03;
public class Ex03 {
public static void main(String[] args) {
Test3 t = new Test3();
int s;
int [] aa = new int[]{1,3,5,7,9};
s = t.total(aa);
System.out.println(s);
int []ss = t.random();
for(int i=0; i<ss.length; i++) {
System.out.print(ss[i] + " ");
}
System.out.println();
int []ss2 = t.random(5);
for(int i=0; i<ss2.length; i++) {
System.out.print(ss2[i] + " ");
}
System.out.println();
}
}
class Test3 {
// λ§€κ°λ³μλ₯Ό λ°°μ΄λ‘ λ겨 λ°λ κ²½μ°
public int total(int[] num) {
int s = 0;
/*
for(int n : num) {
s += n;
}
*/
for(int i=0; i<num.length; i++) {
s += num[i];
}
return s;
}
// 1~100 μ¬μ΄μ λμ 10κ° λ°μ
public int[] random() {
int[] aa = new int[10];
for(int i=0; i<aa.length; i++) {
aa[i] = (int)(Math.random() * 100) + 1;
}
return aa;
}
public int[] random(int n) {
int[] aa = new int[n];
for(int i=0; i<aa.length; i++) {
aa[i] = (int)(Math.random() * 100) + 1;
}
return aa;
}
}
Ex03. μ¬κ°νμ λμ΄μ λλ κ³μ°
package ch06.unit03;
public class Ex04 {
public static void main(String[] args) {
Rect obj = new Rect();
int a, b;
obj.width = 10;
obj.height = 5;
a = obj.area();
b = obj.len();
System.out.println("λμ΄ : " + a);
System.out.println("λλ : " + b);
}
}
// μ¬κ°νμ λμ΄μ λλ κ³μ°
/*
- λ°μ΄ν° : κ°λ‘, μΈλ‘
- κΈ°λ₯ : λμ΄, λλ
*/
class Rect {
int width;
int height;
public int area() { // λμ΄
return width * height;
}
public int len() { // λλ
return (width + height) * 2;
}
}
Ex04. λ λλ₯Ό λ§€κ°λ³μλ‘ λ겨 λ°μ λ λ₯Ό ꡬνκΈ° / 1~45μ μλ‘ λ€λ₯Έ 6κ° λμλ₯Ό λ°μνλ λ©μλ μμ± / μλ‘ λ€λ₯Έ 3μ리 μ μ λ§λ€κΈ°
package ch06.unit03;
import java.util.Arrays;
public class Ex05 {
public static void main(String[] args) {
Test5 t = new Test5();
System.out.println(t.tti(2024));
int[] aa = t.lotto();
for(int a : aa) {
System.out.print(a + " ");
}
System.out.println();
System.out.println(t.number3());
}
}
class Test5 {
// λ
λλ₯Ό λ§€κ°λ³μλ‘ λ겨 λ°μ λ λ₯Ό ꡬνλ λ©μλ
public String tti(int year) {
String [] t = new String[] {"μμμ΄", "λ", "κ°", "λΌμ§",
"μ₯", "μ", "λ²", "ν λΌ", "μ©", "λ±", "λ§", "μ"};
return t[year%12];
}
// 1~45μ μμ€ μλ‘ λ€λ₯Έ 6κ°μ λμλ₯Ό λ°μνλ λ©μλ
public int[] lotto() {
int [] aa = new int[6];
// 0 <= Math.random() < 1
for(int i=0; i<aa.length; i++) {
aa[i] = (int)(Math.random()*45) + 1;
for(int j=0; j<i; j++) {
if(aa[i] == aa[j]) {
i--;
break;
}
}
}
Arrays.sort(aa);
return aa;
}
// μλ‘ λ€λ₯Έ 3μ리 μ μ λ§λ€κΈ° // 102 ~ 987
public int number3() {
int m1, m2, m3;
m1 = (int)(Math.random()*9)+1;
do {
m2 = (int)(Math.random()*10);
} while(m1==m2);
do {
m3 = (int)(Math.random()*10);
} while(m1==m3||m2==m3);
return m1*100 + m2*10 + m3;
}
}