-
JAVA μλ° μ€λ²λ‘λ©, this, final, static, varagsJAVA 2020. 8. 4. 23:00
π― μλ° μ€λ²λ‘λ©, this, final, static ν€μλ, ν¨ν€μ§μ μν¬νΈ, varagsκ°λ³μΈμλ₯Ό μμλ³Έλ€.
μ€λ²λ‘λ©
μλ³μλ λκ°μ μ΄λ¦μ μ€λ³΅ μ¬μ©ν μ μλ€. νμ§λ§ λ³μμ λ€λ₯΄κ² λ©μλμ μμ±μλ κ°μ ν΄λμ€ λ΄μμ κ°μ μ΄λ¦μΌλ‘ μ¬λ¬κ°λ₯Ό λ§λ€ μ μμΌλ©° μ΄λ κ² μμ±λ κ²μ μ€λ²λ‘λ©μ΄λΌκ³ λΆλ₯Έλ€. μ¬λ¬κ°μ μΈμλ₯Ό λ°μ μ μκ² μ€λΉν λ€ μλμΌλ‘ νμ μ λ§λ μ λ₯Ό μμμ νΈμΆν΄μ€λ€. μ€λ²λ‘λ© μμ± μ λ°λμ μΈμ리μ€νΈ(μμ,νμ ,κ°μ)κ° μλ‘ λ¬λΌμΌνλ©° κΈ°λ³Έ μμ±μλ λͺ μν΄μΌ νλ€.
//μμ±μ μ€λ²λ‘λ© public class Ex05_15 { public Ex05_15() { System.out.println("()μμ±μ νΈμΆ"); } public Ex05_15(String a) { System.out.println("(String a) μμ±μ νΈμΆ"); } public Ex05_15(int a) { System.out.println("(int a) μμ±μ νΈμΆ"); } public void sum() { System.out.println("()νΈμΆ"); } public void sum(int a) { System.out.println("(int a)ν¨μ νΈμΆ"); } public void sum(String a) { System.out.println("(String a)ν¨μ νΈμΆ"); } public void sum(int a, String b) {} public void sum(String a, int b) {} public static void main(String[] args) { Ex05_15 test = new Ex05_15(); Ex05_15 test1 = new Ex05_15("νκΈΈλ"); test.sum("νκΈΈλ"); test.sum(100); } }
λμΌν μ΄λ¦μ μμ±μμ λ©μλκ° μ¬λ¬κ° λ§λ€μ΄μ‘μ§λ§ μΈμ리μ€νΈλ μλ‘ λ€λ₯΄κΈ° λλ¬Έμ μ€λ²λ‘λ©μΌλ‘ μμ±λλ€. λ¦¬ν΄ νμ μ λ¬λΌλ μκ΄μλ€. λ©μλλ₯Ό λ§€λ² μλ‘ λ€λ₯Έ μ΄λ¦μΌλ‘ μ¬μ©νλ©΄ κ΄λ¦¬νκΈ° μ΄λ ΅κΈ° λλ¬Έμ μ€λ²λ‘λ©μ νμ©νλ©΄ μ¬μ¬μ©μ±μ λμΌ μ μλ€.
this ν€μλ
κ°μ²΄ μμ±λ μκΈ°μμ μ κ°μ²΄λ₯Ό κ°λ¦¬ν¨λ€. λ§λ€μ΄μ§ κ°μ²΄μ λ©€λ²λ³μκ° μκΈ° μμ μ κ°λ¦¬ν¬ λ μ¬μ©ν μ μλ€. thisν€μλλ μΌλ°μ μΌλ‘ μλ΅λμ§λ§ λͺ μν΄μΌ νλ κ²½μ°κ° μλ€.
1) μΈμ€ν΄μ€λ³μλͺ κ³Ό λ‘컬λ³μλͺ μ΄ λμΌν κ²½μ°
String name; public void setName(String name){ this.name = name; }
2) μ€λ²λ‘λ© μμ±μμμ λ€λ₯Έ μμ±μλ₯Ό νΈμΆνλ κ²½μ°
class Man{ String name; int age; public Man(String name) { this(name, 19); System.out.println("Person μμ±μ1"); } public Man(String name, int age) { this.name = name; this.age = age; System.out.println("Person μμ±μ2"); } public String getName() {return name;} public int getAge() {return age;} } public class Ex05_17 { public static void main(String[] args) { Man p = new Man("νκΈΈλ"); System.out.println(p.getName() + " " + p.getAge()); } }
ν¨ν€μ§μ μν¬νΈ
ν¨ν€μ§λ ν΄λκ°λ μ΄λ€. ν΄λμ€λ₯Ό κΈ°λ₯μ λ°λΌ ν¨ν€μ§λ‘ λΆλ₯νλ€. ν¨ν€μ§ μ΄λ¦μ κ°κΈμ μλ¬Έμλ‘ μ¬μ©νκ³ , μ€λ³΅λμ§ μλ μ΄λ¦μ μ§μ ν΄μΌ νλ€. ν΄λμ€ μμ± μ ν¨ν€μ§λ₯Ό μ§μ νμ§ μμΌλ©΄ default ν¨ν€μ§μ μμ±λλ€.
ν¨ν€μ§κ° μλ‘ λ€λ₯Έ ν΄λμ€λΌλ¦¬λ μ κ·Όμ΄ λΆκ°λ₯νλ€. μ΄λ΄ λ importλ¬Έμ μ¬μ©νλ€.
// com.yyy ν¨ν€μ§ μμ ν΄λμ€ λ§λ€κΈ° package com.yyy; public class Student { public String name="μ΄μμ "; }
ν¨ν€μ§λ ν΄λμ€ λ§¨ μμ μ μΈλλ€.
//Test ν΄λμ€μ Student ν΄λμ€ κ°μ²΄μμ± //ν¨ν€μ§ μμ public class TestStudent { public static void main(String[] args) { //com.yyy.Student test = new com.yyy.Student(); //μ§μ κ²½λ‘λ₯Ό μ§μ Student test = new Student(); System.out.println(test.name); } }
κ°μ²΄ μμ±μ μν΄ Student ν΄λμ€μ μ κ·Όν΄μΌνμ§λ§ ν¨ν€μ§κ° μλ‘ λ¬λΌμ μ κ·Όν μ μλ€. μ§μ ν¨ν€μ§μ κ²½λ‘λ₯Ό μ§μ ν΄μ κ°μ²΄λ₯Ό μμ±νλ λ°©λ²λ μμ§λ§(//μ£Όμ) μ μ¬μ©νμ§ μμΌλ©° importλ₯Ό μ¬μ©νλ κ² νΈνλ€.
μ΄ λ°©λ²μ Scannerλ₯Ό μ¬μ©ν λλ λ΄€λλ°, μ€μΊλλ ν¨ν€μ§λ₯Ό importνλ λ°©λ²μ΄λ€. importλ μ¬λ¬λ² ν μ μλ€.
static μ€νν±
μλ°λ μ»΄νμΌν λ μ μΌ λ¨Όμ ν΄λμ€λ₯Ό λ‘λ©νλ©° static ν€μλλ₯Ό 첫λ²μ§Έλ‘ νμΈνλ€. static ν€μλλ ν΄λμ€, λ³μ, λ©μλμ μ§μ μλ‘ μ¬μ©ν μ μκ³ κ°μ²΄ μμ± μμ΄ μ¬μ©ν μ μλ€.
static λ©μλ μμμλ λ©€λ²λ³μλ₯Ό μ¬μ©ν μ μλ€. λ©€λ²λ³μλ λ©μΈν¨μμ newλ₯Ό μ¬μ©ν΄ κ°μ²΄μμ± ν μ¬μ©ν μ μλλ° staticμ mainν¨μκ° μ€νλκΈ°λ μ μ λ‘λ©λκΈ° λλ¬Έμ λ‘컬λ³μλ§ μ¬μ©ν΄μΌ νλ€.
μμ±λ λͺ¨λ μΈμ€ν΄μ€μμ ν΄λμ€λͺ μΌλ‘ μ κ·Ό κ°λ₯νλ€.
ν΄λμ€μ΄λ¦.λ³μorν¨μμ΄λ¦
μ΄λ κ² λ°λ‘ μ κ·Όν μ μλ€.//staticμ μ΄μ©ν λ³μ μ¬μ© class Counter { static int count; int num; public Counter() { count++; num = count; } public int getNum() { return num; } } public class Ex05_18 { public static void main(String[] args) { System.out.println("κ°μ²΄μμ± νμ : " + Counter.count); Counter c = new Counter(); System.out.println("κ°μ²΄μμ± νμ : " + c.getNum()); Counter c2 = new Counter(); System.out.println("κ°μ²΄μμ± νμ : " + c2.getNum()); System.out.println("κ°μ²΄μμ± νμ : " + Counter.count); } }
static λ³μμ count νμλ₯Ό λμ μμΌ μΆλ ₯νλ νλ‘κ·Έλ¨μ΄λ€.
//staticμ μ΄μ©ν λ©μλ μ¬μ© class Counter2{ static int count; int num; public Counter2() { count++; num = count; } public int getNum() {return num;} public static int getCount() {return count;} } public class Ex05_19 { public static void main(String[] args) { System.out.println("κ°μ²΄μμ± νμ : "+ Counter2.getCount()); Counter2 c = new Counter2(); System.out.println("κ°μ²΄μμ± νμ : "+ c.getNum()); Counter2 c2 = new Counter2(); System.out.println("κ°μ²΄μμ± νμ : "+ Counter2.getCount()); } }
static ν¨μ μμμ λ©€λ²λ³μ μ¬μ©μ λΆκ°λ₯νμ§λ§ static λ³μλ μ¬μ©ν μ μλ€.
μ±κΈν€ λμμΈ ν¨ν΄
κ°μ²΄ ν κ°λ₯Ό μ¬λ¬λͺ μ΄ κ³΅μ ν΄μ μ¬μ©ν λ μ°λ λ°©λ²μ΄λ€. κ°μ²΄λ₯Ό κ³μ new λ‘ λ°λ‘ μμ±νμ§ μκ³ νλμ μΈμ€ν΄μ€λ§μ μμ±νκΈ° μν ν¨ν΄μ΄λ€.
public class Bank { private static Bank b = new Bank(); //2.staticλ³μ, private μ μΈ, //λ΄λΆμμ κ°μ²΄μμ± private Bank() {} //1. μμ±μλ₯Ό private μ§μ , λ€λ₯Έ ν΄λμ€μμ κ°μ²΄μμ± μλ¨, newμλ¨. public static Bank getBank() { return b; //3. μμ±ν κ°μ²΄λ₯Ό 리ν΄(νμν κ³³μμ μ»μ΄μ μ¬μ©) //4. μ¬μ©νλ κ³³μμλ Bank b=Bank.getBank()λ‘ μ»μ. κ°μ κ°μ²΄ μ¬μ© } public String getName() { return "xxμν"; }
final ν€μλ
public static final int NUM = 100;
ν΄λμ€μ μ¬μ©νλ©΄ μμμ΄ λΆκ°λ₯, λ©μλμ μ¬μ©νλ©΄ μ€λ²λΌμ΄λ©μ΄ λΆκ°λ₯νλ©°, λ³μμ μ¬μ©νλ©΄ κ°μ λ³κ²½ν μ μλ€λ μλ―Έμ΄λ€. κ°μ λ³κ²½ν μ μκΈ° λλ¬Έμ μμλ₯Ό ννν λ μ¬μ©νλ€.
Varags(κ°λ³μΈμ)
[μ§μ μ] 리ν΄νμ λ©μλλͺ ( λ°μ΄ν°ν ... λ³μλͺ ){}
λ©μλλ₯Ό νΈμΆν λ λ©μλλͺ κ³Ό μΈμ리μ€νΈκ° μΌμΉν΄μΌνλλ° Varags(...)λ₯Ό μ¬μ©νλ©΄ μΈμ κ°―μ μκ΄μμ΄ λ©μλλ₯Ό νΈμΆν μ μλ€. λ©μλλͺ μ΄ κ°μμΌνκ³ μΈμμ λ°μ΄ν°νμ μ΄ λͺ¨λ μΌμΉν΄μΌ νλ€.
public class TestMain2 { //κ°λ³μΈμ, λ©€λ²λ©μλ(ν¨μ) public void a(int ... n) { for(int x:n) { System.out.println(x); } } public void c(String ... n) { for(String x:n) { System.out.println(x); } } public static void b() {System.out.println("static λ©μλ");} // static λ©μλ public static void main(String[] args) { // TODO Auto-generated method stub TestMain m = new TestMain(); m.a(10); m.a(10,20); m.a(10,9,8); m.a(1,2,3,4,5); m.a(1,2,3,4,5,6); m.c("νκΈΈλ", "μ΄μμ "); b(); //static λ©μλ, κ°μ²΄μμ± μμ΄ μ¬μ© } }
π NEXT : μλ° μμκ³Ό λ€νμ± κ³΅λΆνκΈ°
λ°μν'JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
JAVA μλ° μ€λ²λΌμ΄λ©, λ€νμ± (0) 2020.08.06 JAVA μλ° μμ, μ κ·Όμ§μ μ (0) 2020.08.06 JAVA μλ° ν΄λμ€ λͺ¨λν μ°μ΅νκΈ° (0) 2020.08.03 JAVA μλ° κ°μ²΄, ν΄λμ€, λ©μλ, μμ±μ (0) 2020.08.02 JAVA μλ° λ°°μ΄ (0) 2020.07.31