๋ฐฐ์ด
๋ฐฐ์ด ๋ณต์ฌ
๋ฐฐ์ด์ ํ ๋ฒ ์์ฑํ๋ฉด ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๊ธฐ ๋๋ฌธ์,
๋ ๋ง์ ์ ์ฅ๊ณต๊ฐ์ด ํ์ํ๋ค๋ฉด ๋ ํฐ ๋ฐฐ์ด์ ์๋ก ๋ง๋ค๊ณ ์ด์ ๋ฐฐ์ด๋ก๋ถํฐ ํญ๋ชฉ ๊ฐ์ ๋ณต์ฌํด์ผ ํ๋ค.
๋ฐฐ์ด๊ฐ ๋ณต์ฌ ์ํด : for๋ฌธ ์ฌ์ฉ / System.arraycopy() ๋ฉ์๋ ์ฌ์ฉ
- for๋ฌธ ์ฌ์ฉ
์๋ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฐฐ์ด์ ๋ณต์ฌ์ํจ๋ค. ๋ณต์ฌ๋์ง ์์ ํญ๋ชฉ์ int[] ๋ฐฐ์ด์ ๊ธฐ๋ณธ ์ด๊ธฐ๊ฐ 0์ด ๊ทธ๋๋ก ์ ์ง๋๋ค.
๋๋ณด๊ธฐpackage temp; import java.util.Arrays; public class Arr13 { public static void main(String[] args) { int[] oldIntArray = { 1, 2, 3}; int[] newIntArray = new int[5]; for(int i = 0; i<oldIntArray.length; i++) { newIntArray[i] = oldIntArray[i]; } for(int j : newIntArray) { System.out.print(j + " "); } int[] iArr1 = {10, 20, 30}; int[] iArr2 = Arrays.copyOf(iArr1, iArr1.length); System.out.println(iArr1 == iArr2); //false: ์๋ก ๋ค๋ฅธ ์ฃผ์๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ(๊ฐ๋ง ์ด์ ํ ๊ฒฝ์ฐ) System.out.println(iArr1.equals(iArr2)); // false: System.out.println(iArr1[1] + "," + iArr2[1]); //๋ฐ์ดํฐ๋ ๋์ผํ ๊ฒ์ ํ์ธํ ์ ์์. ๋ด์ฉ์ ๊ฐ์ง๋ง ์๋ก ๋ค๋ฅธ ๊ฐ์ฒด์์ ํ์ธํ ์ ์๋ค. int[] iArr3 = new int[5]; System.arraycopy(iArr1, 0, iArr3, 0, iArr1.length); //iArr1์ 0๋ถํฐ iArr3๋ก ๋ณต์ฌ for(int j : iArr3) { System.out.println(j+" "); } } }
- System.arraycopy() ์ฌ์ฉ
System.arraycopy(์๋ณธ ๋ฐฐ์ด, ์๋ณธ๋ฐฐ์ด ๋ณต์ฌ ์์ ์ธ๋ฑ์ค, ์ ๋ฐฐ์ด, ์ ๋ฐฐ์ด ๋ถ์ฌ๋ฃ๊ธฐ ์์ ์ธ๋ฑ์ค, ๋ณต์ฌํ length);โ System.arraycopy(arr1, 0, arr2, 0, arr1.length);
์๋ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฐฐ์ด์ ๋ณต์ฌ์ํจ๋ค ๋ณต์ฌ๋์ง ์์ ํญ๋ชฉ์ String[] ๋ฐฐ์ด์ ์ด๊ธฐ๊ฐ null์ด ๊ทธ๋๋ก ์ ์ง๋๋ค.
public class Arr14 {
public static void main(String[] args) {
String[] oldStrArray = {"Java", "array", "copy"};
String[] newStrArray = new String[5]; // newStrArray ์ 5์นธ์ ๋ง๋ จํด๋ด
๋๋ค
System.arraycopy(oldStrArray, 0, newStrArray, 0,oldStrArray.length); //oldStrArray๋ฅผ ์์ค์ ๋ฃ๊ณ 0๋ถํฐ, newStrArray ๋ฅผ destination์ผ๋ก ๋ฃ๊ณ , 0๋ถํฐ ๋ฃ๊ฒ ๋ค.length๋ oldArray์ ๋ํ.
for(String s : newStrArray) {
System.out.print(s+" ");
}
System.out.println();
System.out.println(oldStrArray == newStrArray);
System.out.println(oldStrArray.equals(newStrArray));
System.out.println(oldStrArray[1] == newStrArray[1]);//true (๊ฐ์ ์ฃผ์)
System.out.println(oldStrArray[1].equals(newStrArray[1])); //true (๊ฐ์ ๋ด์ฉ)
}
}
๋ฉ์๋
๋ฉ์๋์ ๊ธฐ๋ณธ ๊ตฌ์กฐ
๋ฉ์๋ ๊ตฌ์ฑ ์์: 1. ์ด๋ฆ(Sum) 2. ์ ๋ ฅ๊ฐ(x,y) 3. ๋ฐํ๊ฐ(return ans) 4. ์ฒ๋ฆฌ(x+y)
๋ฉ์๋์ ๊ตฌ์กฐ ์ด 4๊ฐ์ง (์
๋ ฅ๊ฐ ์ ๋ฌด / ๋ฐํ๊ฐ ์ ๋ฌด)
- ๋ฐํ๊ฐ ์์ ๋, return ๊ฐ ํ์
์ ์ด์ค์ผ / ๋ฐํ๊ฐ ์์ ๋๋ void!
package temp;
public class Meth01 {
// Method ๊ตฌ์กฐ1 : ์
๋ ฅ๊ฐ(O), ๋ฐํ๊ฐ(O)
static int Sum1(int x, int y) { //return๊ฐ์ ํ์
์ ์ด์ค์ผ ํจ
int ans = x+y;
return ans;
} //method์ static ์ด ์์ผ๋ฉด ํธํจ.๊ทธ ์ด์ ๋ ๋์ค์ ์ค๋ช
// Method ๊ตฌ์กฐ2 : ์
๋ ฅ๊ฐ(O), ๋ฐํ๊ฐ(X)
static void Sum2(int x, int y) { //return๊ฐ์ด ์์ผ๋ void๋ฅผ ์จ์ค๋ค.
int ans = x+y;
System.out.println(ans);
}
// Method ๊ตฌ์กฐ3 : ์
๋ ฅ๊ฐ(X), ๋ฐํ๊ฐ(O)
static int Sum3() {
int ans = 1000+2000;
return ans;
}
// Method ๊ตฌ์กฐ4 : ์
๋ ฅ๊ฐ(X), ๋ฐํ๊ฐ(X)
static void Sum4() {
int ans = 10000+20000;
System.out.println(ans);
}
///////์ ์ด์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด๋ณผ๊น์?/////////
public static void main(String[] args) { //๋ฉ์ธ ๋ฉ์๋๊ฐ ์๋ ํด๋์ค ๊ตฌ์ฑ์์๋ ์คํํฑ์ด ์์ผ๋ฉด ๊ฐ์ ธ๋ค ์ฐ๊ธฐ ํธํ๋ค
int a1 = Sum1(10, 20); //Return ๊ฐ์ด ์์ ๋์๋ ๋ฐ์์ฌ ๊ฒ์ ์์ฑํด์ค
System.out.println(a1);
Sum2(200, 100); //๋ฆฌํด๊ฐ ์์ผ๋ ๋ฐ๋ก ๊ฐ๋ฅ
int a2 = Sum3();
System.out.println(a2);
Sum4();
}
๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ
ํด๋์ค ๋ด์ ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์ฌ๋ฌ ๊ฐ ์ ์ธํ๋ ๊ฒ.
//๋ฉ์๋ ์ค๋ฒ๋ก๋ฉ: ํด๋์ค ๋ด ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ์ฌ๋ฌ๊ฐ ์ ์ธํ๋ ๊ฒ
package temp;
public class Meth02 {
//////////////////////////////////////////// Method ///////////////////////////////////////////////
// static int Sum(int x1, int x2) {return x1 + x2; } // ์
๋ ฅ ๋งค๊ฐ๋ณ์์ ํ์
์ด ๋์ผํ ๋์๋ ํ๋๋ฐ์ ๋ชป์.
static void Sum(int x1, int x2) {System.out.println(x1 + x2); }
static void Sum(int x1, int x2, int x3) {System.out.println(x1 + x2 + x3); }
static void Sum(int x1, int x2, int x3, int x4) {System.out.println(x1 + x2 + x3 + x4); }
static void Sum(int x1, int x2, int x3, int x4, int x5) {System.out.println(x1 + x2 + x3 + x4 + x5); }
static void Sum(String x1, String x2) {System.out.println(x1+x2); } // ์
๋ ฅ ๋งค๊ฐ๋ณ์์ ํ์
๊ฐ๋ฆฌ์ง ์
static int Sum(int x1) {return x1 +444; }
static double Sum(double x1, double x2) {return x1 + x2; }
///////////////////////////////////////////////////////////////////////////////////////////////////////
public static void main(String[] args) {
int a = 20, b = 10, c = 5, d = 3, e = 2;
Sum(a, b); // 30
Sum(a, b, c); // 30
Sum(a, b, c, d); // 30
Sum(a, b, c, d, e); // 30
Sum("๋ํ","๋ฏผ๊ตญ");
int i = Sum(333);
System.out.println(i);
double j = Sum(12.12, 23.23);
System.out.println(j);
}
}
๊ฐ๋ณ์ ๋งค๊ฐ๋ณ์
- int ๊ฐ๋ณ์ ๋งค๊ฐ๋ณ์ (๊ฐ๋ณ์ ๋งค๊ฐ๋ณ์ --> ๋งค๊ฐ๋ณ์ ๋ฐฐ์ดํ (๋ฐ์ดํฐ ํ์
๊ฐ์ ๊ฒฝ์ฐ) / ๊ฐ๋ณ์ ๋งค๊ฐ๋ณ์ --> ๊ฐ๋ณ๊ธธ์ด ๋งค๊ฐ๋ณ์)
๋๋ณด๊ธฐ
package temp; public class Meth03 { // ๊ฐ๋ณ์ ๋งค๊ฐ๋ณ์ --> ๋งค๊ฐ๋ณ์ ๋ฐฐ์ดํ (๋ฐ์ดํฐ ํ์ ๊ฐ์ ๊ฒฝ์ฐ) static int Sum1( int[] iArr1 ){ int ans = 0; for(int i = 0; i<iArr1.length; i++) { //System.out.println(iArr1[i]); ans += iArr1[i] ; } return ans; } // ๊ฐ๋ณ์ ๋งค๊ฐ๋ณ์ --> ๊ฐ๋ณ๊ธธ์ด ๋งค๊ฐ๋ณ์ static int Sum2( int ... iArr1 ){ int ans = 0; for(int i = 0; i<iArr1.length; i++) { //System.out.println(iArr1[i]); ans += iArr1[i] ; } return ans; } public static void main(String[] args) { int a = 20, b = 10, c = 5, d = 3, e = 2; int[] iArr1 = {a,b,c}; for(int i = 0; i<iArr1.length; i++) { System.out.println(iArr1[i]); } int ans1 = Sum1(iArr1); System.out.println(ans1); int ans2 = Sum1(new int[] {a, b, c, d, e}); System.out.println(ans2); int[] iArr2 = new int[] {100, 34,65, 87, 29, 91, 58}; int ans3 = Sum1(iArr2); System.out.println(ans3); int ans4 = Sum2(iArr2); System.out.println(ans4); } }
- String ๊ฐ๋ณ์ ๋งค๊ฐ๋ณ์
๋๋ณด๊ธฐ
package temp; public class Meth04 { static void Sum1(String ... sArr ){ String ans = " "; for (String s : sArr ) { ans += s; } System.out.println(ans); } public static void main(String[] args) { String s1 = "๊ฐ", s2 = "๋ฐค", s3 = "๋ฐฐ", s4 = "๊ทค", s5 = "์ฝฉ"; Sum1(new String[ ] {s1, s2, s3}); String[] sArr1 = {"๊ฐ", "๋ฐค", s3, s4, "์ฝฉ"}; Sum1(sArr1); //Sum1(๊ฐ,๋ฐค,๋ฐฐ)==> ๊ฐ๋ฐค๋ฐฐ //Sum1(๊ฐ,๋ฐค,๋ฐฐ,๊ทค,์ฝฉ )==> ๊ฐ๋ฐค๋ฐฐ๊ทค์ฝฉ } }
ํด๋์ค
๊ฐ์ฒด์ ํด๋์ค
ํด๋์ค: ์๋ฐ์ ์ค๊ณ๋
์ธ์คํด์ค : ํด๋์ค๋ก๋ถํฐ ๋ง๋ค์ด์ง ๊ฐ์ฒด
ํด๋์ค ์ ์ธ
์ฌ์ฉํ๊ณ ์ ํ๋ ๊ฐ์ฒด๋ฅผ ๊ตฌ์ํ๋ค๋ฉด(์ฌ๋ ๊ฐ์ฒด) ๊ฐ์ฒด์ ๋ํ ์ด๋ฆ์ ํ๋ ๊ฒฐ์ ํ๊ณ (Person), ์ด ๊ฒ์ ํด๋์ค ์ด๋ฆ์ผ๋ก ์ ํด์ผ ํจ
์๋ฐ ํด๋์ค ์๋ณ์ ์์ฑ ๊ท์น:
- ํ๋ ์ด์์ ๋ฌธ์๋ก ์ด๋ฃจ์ด์ ธ์ผ ํจ
- ์ฒซ ๊ธ์์๋ ์ซ์ ๋ถ๊ฐ๋ฅ
- $ _ ์ธ์ ํน์๋ฌธ์ ๋ถ๊ฐ
- ์๋ฐ ํค์๋ ๋ถ๊ฐ
ํต์์ ์ผ๋ก ๋จ์ผ ๋จ์ด๋ผ๋ฉด ์ฒซ ๊ธ์ ๋๋ฌธ์, ๋๋จธ์ง ์๋ฌธ์ / ํผํฉ๋ ์ด๋ฆ์ด๋ผ๋ฉด ๊ฐ ๋จ์ด์ ์ฒซ ๊ธ์ ๋๋ฌธ์๋ก ํ๋ ๊ฒ์ด ์ผ๋ฐ์
* public ์ ๊ทผ ์ ํ์๋ ํ์ผ ์ด๋ฆ๊ณผ ๋์ผํ ์ด๋ฆ์ ํด๋์ ์ ์ธ์๋ง ๋ถ์ผ ์ ์์ *
ํด๋์ค๊ฐ ํ์ํ ์ด์ :
ex) ํด๊ฒ์
๋ฐฅ(๋ณ์) / ๊ตญ(๋ณ์) / ์ ๊ฐ๋ฝ / ๋ฐ์ฐฌ ๋ฑ๋ฑ 10๊ฐ์ ๊ทธ๋ฆ(๋ณ์)์ผ๋ก ์ธํ ์ ํด์ผํ๋๋ฐ, 10๊ฐ์ ๊ทธ๋ฆ์ ๋ค ๋ฐ๋ก๋ฐ๋ก ํด์ผํ๋ ๊ฒฝ์ฐ
--> ์ฅ์ : ์๋ก๋ค๋ฅธ ๋ฐ์ดํฐ ํ์ ์ผ๋ก ๊ตฌ์ฑ ๊ฐ๋ฅ
--> ๋จ์ : ๋๋ฌด ๋ง์ด ์๋ค๊ฐ๋ค ํด์ผํจ
๋ฐ๋ผ์, ๋ชจ๋ ๋ด์ ์ ์๋ ์ํ์ด ํ์ํจ --> ์ด ๊ฒ์ด ๊ฐ์ฒด์งํฅ์ธ์ด์์ ํด๋์ค
ํด๋์ค์ ํ์์ฑ : ์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ ค๋๊ณ ์ ํ๋ ๋ง์
Array ์ฅ์ : ์ฌ๋ฌ ์นธ์ ํ ๋ฒ์ ๊ฐ์ ธ์ฌ ์ ์์ (์์ฃผ ๋ฐ์ค, ๋งฅ์ฃผ ๋ฐ์ค, ๊ณ๋ํ ์ฒ๋ผ)
โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ์ค๋ ์์ ์ค ๊ฐ์ฅ ์ค์ํ ์ด์ผ๊ธฐ โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ
์์ : ์ฃผ Data --> ์ฑ ( ์ ๋ชฉ, ์ ์, ๊ฐ๊ฒฉ ) : ํผ๊ณต์, ํ๊ธธ๋, 24000
Object --> ์ฑ (์ฃผ ๋ฐ์ดํฐ) --> Book
class --> ์ ๋ชฉ,์ ์, ๊ฐ๊ฒฉ (์ค๋ธ์ ํธ๋ฅผ ๊พธ๋ฐ ์ ์๋ ๊ตฌ์ฑ์์ => ๋ฉค๋ฒ ) --> title, author, price
Instance --> ํผ๊ณต์, ํ๊ธธ๋, 24000
โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ
class Book01 { // ํด๋์ค๋ ์ค๋ณต๋๋ฉด ์๋์ด์ ์ซ์๋ฅผ ๋ถ์ฌ์ค๋ค
String title = "ํผ๊ณต์";
String author = "ํ๊ธธ๋";
int price = 24000;
}
public class cla01 {
public static void main(String[] args) {
Book01 b1 = new Book01();
System.out.println(b1.title + "," + b1.author + "," + b1.price);
}
}
ํด๋์ค ์ ๋ฉ์๋ ๋ง๋ค๊ธฐ
* ์์ ์๋ ๋ฉค๋ฒ ๋ณ์๋ ์ด๊ธฐํ๋ฅผ ์์์ผ์ค๋ ๋จ!
class Book01 { // ํด๋์ค๋ ์ค๋ณต๋๋ฉด ์๋์ด์ ์ซ์๋ฅผ ๋ถ์ฌ์ค๋ค
// Class Member Field(์ํ ์์ ๋ด์ ๋ ์ ์๋ ๋ฐ์ดํฐ ๊ณต๊ฐ๋ค)
String title;
String author;
int price;
// Class Member Method, ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฉ์๋(์์ ์ ๊ฐ์ ๋๊ตฌ)
void pBook(){
System.out.println(title + "," + author + "," + price);
}
}
public class cla01 {
public static void main(String[] args) {
Book01 b1 = new Book01();
b1.title = "์๋ฐ์ ์ ์"; b1.author = "Tom"; b1.price = 30000;
b1.pBook();
}
}
ํ ํ์ผ์ด ์์ด๋ bin ํด๋ ์์ .class ํ์ผ์ ๊ฐ๊ฐ ๋ง๋ค์ด์ง (์์ ๊ฒฝ์ฐ Book01.class, cla01)
๊ทธ๋์ ๊ฐ์ ์ด๋ฆ์ ํด๋์ค ๋ ๊ฐ ์ด์ ๋ชป๋ง๋๋ ๊ฒ!
ํด๋์ค ๊ทธ๋ฆผ ๊ทธ๋ ค ์ค๋ช :
๊ฐ์ฒด ์์ฑ๊ณผ ํด๋์ค ๋ณ์
ํด๋์ค ์ ์ธํ ํ ์ปดํ์ผ ํ๋ค๋ฉด, ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ค๊ณ๋ ๋ง๋ค์ด์ง ๊ฒ!
์ด์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ค๋ฉด new ์ฐ์ฐ์๋ฅผ ํ์ฉํ๋ฉด ๋๋ค.
ํด๋์ค ๋ณ์;
new ํด๋์ค();
///๋๋///
ํด๋์ค ๋ณ์ = new ํด๋์ค();
new ์ฐ์ฐ์๋ก ์์ฑ๋ ๊ฐ์ฒด๋ ๋ฉ๋ชจ๋ฆฌ ํ ์์ญ์ ์์ฑ๋๋ค! ๊ทธ๋ฆฌ๊ณ ํ ์์ญ์์ ๊ฐ์ฒด์ ๋ฒ์ง๋ฅผ ๋ฆฌํดํ๋๋ก ๋์ด์์! ์คํ์์ ์ฐธ์กฐํด์ผ ํ๋๊น
ํด๋์ค์ ๊ตฌ์ฑ ๋ฉค๋ฒ
ํด๋์ค์๋ ๊ฐ์ฒด๊ฐ ๊ฐ์ ธ์ผ ํ ๊ตฌ์ฑ ๋ฉค๋ฒ๊ฐ ์ ์ธ๋จ.
- ํ๋ : ๊ฐ์ฒด์ ๊ณ ์ ๋ฐ์ดํฐ, ๋ถํ๊ฐ์ฒด, ์ํ ์ ๋ณด ์ ์ฅํ๋ ๊ณณ. ์ ์ธ ํํ๋ ๋ณ์์ ๋น์ทํ์ง๋ง, ๋ณ์๋ผ๊ณ ๋ถ๋ฅด์ง ์์.
- ์์ฑ์: new ์ฐ์ฐ์๋ก ํธ์ถ๋๋ { } ๋ธ๋ก. ๋ฉ์๋์ ๋น์ทํ๊ฒ ์๊ฒผ์ง๋ง ํด๋์ค ์ด๋ฆ์ผ๋ก ๋์ด์๊ณ ๋ฆฌํดํ์ ์์.
- ๋ฉ์๋: ๊ฐ์ฒด์ ๋์์ ํด๋นํ๋ { }๋ธ๋ก.
'PlayData > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Day 9 | Java] ํด๋์ค / ํ์ ๋ณํ๊ณผ ๋คํ์ฑ / (0) | 2021.11.19 |
---|---|
[Day 8 | Java] ํด๋์ค / ์์ (0) | 2021.11.19 |
[Day7 | Java] ํด๋์ค / ๋ฉ๋ชจ๋ฆฌ / ์ธ์คํด์ค๋ฉค๋ฒ์ ์ ์ ๋ฉค๋ฒ (0) | 2021.11.17 |
[Day2 | Java] ๋ณ์์ ํ์ (0) | 2021.11.17 |
[Day 1 | Java] ์๋ฐ ์์ํ๊ธฐ (0) | 2021.11.16 |