Tiny Bunny
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป/JAVA

[JAVA] ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜• | ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ | ๋ฐ์ดํ„ฐ ํƒ€์ž…

by soonybutter 2024. 7. 30.
728x90

 

์ž๋ฐ”์—์„œ๋Š” ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ํฌ๊ฒŒ ๊ธฐ๋ณธํ˜•๊ณผ ์ฐธ์กฐํ˜•์œผ๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค.

๊ธฐ๋ณธํ˜•
  • int, long, boolean, double ํ˜•๊ณผ ๊ฐ™์ด ๋ณ€์ˆ˜์— ์‚ฌ์šฉํ•  ๊ฐ’์„ '์ง์ ‘' ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž…
  • ์—ฐ์‚ฐ๊ฐ€๋Šฅํ•จ.

 

 

์ฐธ์กฐํ˜•
  • School school1=new School(); , int[] students ์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ '์ฐธ์กฐ๊ฐ’'์„ ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž….
  • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ •ํ•œ๋‹ค
  • ์œ„ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ๊ฐ์ฒด ๋˜๋Š” ๋ฐฐ์—ด์—์„œ ์‚ฌ์šฉ๋จ.
  • ๊ฐ์ฒด : ' . ' ์„ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ ๋‚ด์˜ ๊ฐ์ฒด์— ์ฐพ์•„๊ฐ€์„œ ์‚ฌ์šฉํ•จ. ex) school1.name 
  • ์—ฐ์‚ฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•จ. (๊ฐ์ฒด์˜ ํด๋ž˜์Šค ๋ฉค๋ฒ„๋ณ€์ˆ˜์— ์ ‘๊ทผํ•œ ๊ฒฝ์šฐ๋Š” ๊ฐ€๋Šฅํ•จ.) 
  • ํด๋ž˜์Šค๋Š” ๋ชจ๋‘ ์ฐธ์กฐํ˜•์ด๋‹ค. 
  • String ์—ญ์‹œ ์‚ฌ์‹ค ํด๋ž˜์Šค์ด๋ฉฐ, ์ฐธ์กฐํ˜•์ด๋‹ค.

 

Student s1 = new Student();
s1.grade = 100;
Student s2 = new Student();
s2.grade = 90;
int sum = s1.grade + s2.grade; //์—ฐ์‚ฐ ๊ฐ€๋Šฅ

 

 

 

์ž๋ฐ”๋Š” ํ•ญ์ƒ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ๋Œ€์ž…ํ•œ๋‹ค! 

 

๊ธฐ๋ณธํ˜•, ์ฐธ์กฐํ˜• ๋ชจ๋‘ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ๋Œ€์ž…ํ•˜๋Š” ์›๋ฆฌ์ด๋‹ค.

๋‹จ, ๊ธฐ๋ณธํ˜•์˜ ๊ฒฝ์šฐ ๋ณ€์ˆ˜ ์•ˆ์— ์žˆ๋Š” ์‹ค์ œ ๊ฐ’์„ ๋ณต์‚ฌ ํ›„ ๋Œ€์ž…ํ•˜๋ฉฐ,

์ฐธ์กฐํ˜•์˜ ๊ฒฝ์šฐ ๋ณ€์ˆ˜ ์•ˆ์— ์žˆ๋Š” ์ฐธ์กฐ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ๋Œ€์ž…ํ•œ๋‹ค.

์ฆ‰ ์‹ค์ œ ๊ฐ’์ด ์•„๋‹Œ, ๋ณ€์ˆ˜๊ฐ€ ๋‹ด์•„๋‘๊ณ  ์žˆ๋˜ ์ฃผ์†Œ๊ฐ’(์ฐธ์กฐ๊ฐ’)๋งŒ ๋ณต์‚ฌ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

-> ๊ฐ™์€ ๊ฐ’์„ ์ฐพ์•„๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ๋Š˜์–ด๋‚œ ๊ฒƒ.

 

๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…์—์„œ์˜ ๋Œ€์ž…์„ ํ•œ๋‹ค๊ณ  ํ•ด๋„, ์‹ค์ œ ๋ณ€์ˆ˜๊ฐ€ ๋‹ด์•„๋‘๊ณ  ์žˆ๋˜ ๊ณ ์œ ๊ฐ’์˜ ๋ณ€ํ™”๋Š” ์—†๋‹ค.

  • ๊ธฐ๋ณธํ˜• ๋Œ€์ž…
int a=10;
int b=a;
  • ์ฐธ์กฐํ˜• ๋Œ€์ž…
Student s1 = new Student();
Student s2 = s1;
// s2์—๋Š” s1์˜ ๊ฐ์ฒด์˜ ์œ„์น˜๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฐธ์กฐ๊ฐ’(์ฃผ์†Œ๊ฐ’)๋งŒ ๋ณต์‚ฌ๋œ๋‹ค

 

  • ์ฐธ์กฐํ˜•์˜ ๋ณ€์ˆ˜๋Œ€์ž…
package ref1;
public class Data
{
  int value;
}

Dataํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ• ๋•Œ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋Š” value์ด๋‹ค.

๋ฉ”์ธ ๋ฉ”์„œ๋“œ์—์„œ Dataํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๊ฐ’์„ ๋Œ€์ž…ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ.

package ref1;
public class Var 
{
public static void main(String[] args) 
{
Data dataA = new Data();
dataA.value = 10;
Data dataB = dataA;  //dataA์˜ ์ฃผ์†Œ๊ฐ’์„ dataB์— ๋ณต์‚ฌ, ๋Œ€์ž… !


System.out.println("dataA ์ฐธ์กฐ๊ฐ’=" + dataA);  //dataA ์ฐธ์กฐ๊ฐ’=ref.Data@x001
System.out.println("dataB ์ฐธ์กฐ๊ฐ’=" + dataB);  //dataB ์ฐธ์กฐ๊ฐ’=ref.Data@x001
System.out.println("dataA.value = " + dataA.value); //dataA.value = 10
System.out.println("dataB.value = " + dataB.value); //dataB.value = 10
 
//dataA ๋ณ€๊ฒฝ
dataA.value = 20;
System.out.println("๋ณ€๊ฒฝ dataA.value = 20");  //๋ณ€๊ฒฝ dataA.value = 20
System.out.println("dataA.value = " + dataA.value);  //dataA.value = 20
System.out.println("dataB.value = " + dataB.value);  //dataB.value = 20

//dataB ๋ณ€๊ฒฝ
dataB.value = 30;
System.out.println("๋ณ€๊ฒฝ dataB.value = 30"); //๋ณ€๊ฒฝ dataB.value = 30
System.out.println("dataA.value = " + dataA.value); //dataA.value = 30
System.out.println("dataB.value = " + dataB.value);  //dataB.value = 30
}
}

 

ใ„ด dataA ๋ณ€์ˆ˜: Dataํ˜• ๊ฐ์ฒด์˜ ์ฐธ์กฐ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค.

๊ฐ์ฒด์˜ value ๋งค๊ฐœ๋ณ€์ˆ˜์— 10์„ ์ €์žฅํ–ˆ๋‹ค.

Data dataB = dataA;  ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด dataA์— ์žˆ๋˜ ์ฐธ์กฐ๊ฐ’์ด ๋ณต์‚ฌ๋ผ์„œ dataB์— ๋Œ€์ž…๋œ๋‹ค.

๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ธ์Šคํ„ด์Šค๊ฐ€ ์•„๋‹Œ, ๋ณ€์ˆ˜์— ๋“ค์–ด์žˆ๋Š” ์ฐธ์กฐ๊ฐ’๋งŒ ๋ณต์‚ฌ๋ผ์„œ ์ „๋‹ฌ๋œ๋‹ค.

 

dataA.value=20์€ 

dataA(x001์ด๋ผ๋Š” ์ฃผ์†Œ๊ฐ’)์˜ value๊ฐ’์„ 10์—์„œ 20์œผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค๋Š” ์˜๋ฏธ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ dataA์™€ dataB๋Š” ๊ฐ™์€ ์ฐธ์กฐ๊ฐ’์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ๋•Œ๋ฌธ์— dataA.value = dataB.value =20 ์ด๋‹ค.

 

 

 

๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์‹œ
๊ธฐ๋ณธํ˜•: ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.
์ฐธ์กฐํ˜•: ๋ณ€ํ•œ๋‹ค.

 

๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ• ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜(ํŒŒ๋ผ๋ฏธํ„ฐ)๋„ ๋ณ€์ˆ˜๋‹ค.

๋”ฐ๋ผ์„œ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๊ฐ’์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ์ „๋‹ฌํ•œ๋‹ค.

 

  • ๊ธฐ๋ณธํ˜• ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
public static void main(String[] args)
{
  int a = 10;
  changeOne(a);
  
}

static void changeOne(int x)
{
  x=20;
}

์œ„์˜ ์ฝ”๋“œ๋Š” ๋ฉ”์ธ ๋ฉ”์„œ๋“œ ์•ˆ์—์„œ changeOne()๋ฉ”์„œ๋“œ์— 10์ด๋ผ๋Š” ๊ฐ’์„ ์ „๋‹ฌํ•ด์„œ ํ˜ธ์ถœํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ˜ธ์ถœ๋œ changeOne()๋ฉ”์„œ๋“œ ์•ˆ์—์„œ x=20์„ ์ƒˆ๋กœ์šด ๊ฐ’์œผ๋กœ ๋Œ€์ž…ํ•œ๋‹ค.

x์˜ ๊ฐ’์€ 20์œผ๋กœ ๋ณ€๊ฒฝ, a=10์œผ๋กœ ์œ ์ง€๋œ๋‹ค.

 

 

  • ์ฐธ์กฐํ˜• ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ
public static void main(String[] args)
{
  Data dataA = new Data();
  dataA.value = 10;
  changeOne(dataA);
}

static void changeOne(Data dataX)
{
  dataX.value= 20;

}

์œ„์˜ ์ฝ”๋“œ์—์„œ ๋ฉ”์ธ ๋ฉ”์„œ๋“œ ์•ˆ์—์„œ Data ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ ,

์ฐธ์กฐ๊ฐ’์„ dataA์— ๋‹ด๋Š”๋‹ค.

 

dataA.value = 10;

์ฐธ์กฐ๊ฐ’x001 ์˜ Data ์ธ์Šคํ„ด์Šค ์•ˆ์— value  ๋งค๊ฐœ๋ณ€์ˆ˜์— 10์ด ์ €์žฅ๋๋‹ค.

 

๋ณ€์ˆ˜ dataA๋ฅผ ์ „๋‹ฌํ•ด์„œ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด

dataA, dataX ๋ชจ๋‘ ๊ฐ™์€ ์ฐธ์กฐ๊ฐ’์„ ๊ฐ–๊ฒŒ ๋œ๋‹ค.

์ฐธ์กฐ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ์ „๋‹ฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

changeOne() ๋ฉ”์„œ๋“œ ์•ˆ์—์„œ dataX.value์— ์ƒˆ๋กœ์šด ๊ฐ’ 20์„ ๋Œ€์ž…ํ•˜๋ฉด,

์ฐธ์กฐ๊ฐ’ x001 ์ธ์Šคํ„ด์Šค์— ์ ‘๊ทผํ•ด์„œ ๊ทธ ์•ˆ์— ์žˆ๋Š” value๊ฐ’์„ 20์œผ๋กœ ๋ณ€๊ฒฝํ•œ ๊ฒƒ์ด ๋œ๋‹ค.

์œ„์—์„œ ์ฐธ์กฐ๊ฐ’์„ ๋ณต์‚ฌํ•ด์„œ ๋ณด๋ƒˆ๊ธฐ ๋•Œ๋ฌธ์—, dataA์™€ dataX๋Š” ๊ฐ™์€ ์ฐธ์กฐ๊ฐ’์„ ์ฐธ๊ณ ํ•œ๋‹ค.

๊ทธ๋ž˜์„œ dataA.value = dataX.value = 20 ์ด ๋œ๋‹ค.

 

์ฆ‰, "์ฐธ์กฐ๊ฐ’์˜ ์•ˆ์— ์ธ์Šคํ„ด์Šค๊นŒ์ง€ ๋“ค์–ด๊ฐ€์„œ ๋ฐ”๊ฟ”์ง„๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‘˜์˜ ์ฐธ์กฐ๊ฐ’์€ ๊ฐ™์•„, ๊ฐ™์€ ๊ฒƒ์„ ๊ฐ€๋ฅดํ‚ค๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค."

 

 

 

 

 

 

 

ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด๋‚˜ ์ด์ƒํ•œ ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด ๋Œ“๊ธ€๋กœ ์ง€์ ํ•ด์ฃผ์„ธ์š”! 

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :)

728x90

TOP

Designed by ํ‹ฐ์Šคํ† ๋ฆฌ