728x90
반응형
Ex11Main
package one; class T { int c; //멤버변수는 자동초기화값o } class E { int i=0; boolean b=false; char c=' '; double d=0.0; float f=0.0f; long l=0L; String s=null; T t=null; //public E() public void md() { //지역변수는 자동초기화값x int i=0; boolean b=false; char c=' '; double d=0.0; float f=0.0f; long l=0L; String s=null; T t=null; //재선언 1회 System.out.println("▼ 멤버변수, 전역변수의 자료형에 따른 초기값"); System.out.println("i의 초기값: " + i); System.out.println("b의 초기값: " + b); System.out.println("c의 초기값: " + c); System.out.println("d의 초기값: " + d); System.out.println("f의 초기값: " + f); System.out.println("l의 초기값: " + l); System.out.println("s의 초기값: " + s); System.out.println("t의 초기값: " + t); System.out.println("\n=============================="); } } public class Ex11Main { public static void main(String[] args) { E e = new E(); e.md(); } }
class T { int c; } class E { int i; boolean b; char c; double d; float f; long l; String s; T t; //멤버변수 //public E() public void md() { int i=0; boolean b=false; char c=' '; double d=0.0; float f=0.0f; long l=0L; String s=null; T t=null; //지역변수 //재선언 1회 System.out.println("▼ 멤버변수, 전역변수의 자료형에 따른 초기값"); System.out.println("i의 초기값: " + i); System.out.println("b의 초기값: " + b); System.out.println("c의 초기값: " + c); System.out.println("d의 초기값: " + d); System.out.println("f의 초기값: " + f); //0.0f System.out.println("l의 초기값: " + l); //0L 출력시 접미사 생략 System.out.println("s의 초기값: " + s); //참조변수 System.out.println("t의 초기값: " + t); //참조변수 System.out.println("\n=============================="); } } public class Ex11Main { public static void main(String[] args) { E e = new E(); e.md(); } } |
▼ 멤버변수, 전역변수의 자료형에 따른 초기값 i의 초기값: 0 b의 초기값: false c의 초기값: d의 초기값: 0.0 f의 초기값: 0.0 l의 초기값: 0 s의 초기값: null t의 초기값: null ============================== |
지역변수는 자동초기화값x
멤버변수는 자동초기화값o
Memory
package two; public class Memory { String str; int num; public Memory () {} //기본생성자 public Memory (String str, int num) { //기타생성자 this.str = str; this.num = num; }//Constructor Overloading public String returnStr() {return str;} public int returnNum() {return num;} }
package two; public class MemoryTest { public static void main(String[] args) { Memory m1 = new Memory("hello", 5); System.out.println("m1객체의 출력값 : " + m1.returnStr()); Memory m2 = new Memory("hello", 7); System.out.println("m2객체의 출력값 : " + m2.returnStr()); Memory m3 = m2; System.out.println("m3객체의 출력값 : " + m3.returnStr()); System.out.println(m1 == m2); System.out.println(m1 == m3); System.out.println(m2 == m3); } }
m1객체의 출력값 : hello m2객체의 출력값 : hello m3객체의 출력값 : hello false false true
class Memory { String str; int num; public Memory () {} //기본생성자 public Memory (String str, int num) { //기타생성자 this.str = str; this.num = num; //instance자체. this키워드 객체단위. 지역에 붙을 수 x }//Construtor Overloading public String returnStr() {return str;} public int returnNum() {return num;} } Memory mm = new Memory("메모리객체생성", 1); |
m1객체의 출력값 : hello m2객체의 출력값 : hello m3객체의 출력값 : hello false false true |
public class MemoryTest { public static void main(String[] args) { Memory m1 = new Memory("hello", 5); System.out.println("m1객체의 출력값 : " + m1.returnStr()); Memory m2 = new Memory("hello", 7); System.out.println("m2객체의 출력값 : " + m2.returnStr()); Memory m3 = m2; //주소값 공유 System.out.println("m3객체의 출력값 : " + m3.returnStr()); System.out.println(m1 == m2); System.out.println(m1 == m3); System.out.println(m2 == m3); //주소값이 == true } } |
==(동등비교연산자) | |
변수인 경우 | 값을 비교 |
객체인 경우 | 주소값을 비교 |
ArgumentClasspackage two; public class ArgumentClass { public static void main(String[] args) { if(args.length <=0) { System.out.println("파라미터를 입력해주세요"); //Run Configurations 입력 전 } else { int a = 0; int i = 0; for(String s : args) { System.out.println("args[" + i +"]의 값은 "+ s); //Run Configurations 입력 후 i++; } } } }
public class ArgumentClass { public static void main(String[] args) { if(args.length <=0) { System.out.println("파라미터를 입력해주세요"); } else { int a = 0; int i = 0; for(String s : args) { System.out.println("args[" + i +"]의 값은 "+ s); i++; } } } } |
초기값 |
파라미터를 입력해주세요 | |
Run Configurations | |
args[0]의 값은 1 args[1]의 값은 2 args[2]의 값은 3 |
//Java의 캡슐화(Encapsulation) : 바로 노출되는 변수나 객체를 한 번 더 감싸서 직접 노출을 막기 위해 감싸는 것(감싸는 기본 단위가 클래스) class T{ int a = 5; //public T(){} } //정보은닉(Information Hiding) : 클래스의 멤버필드를 외부에서 직접적으로 접근하지 못 하도록 막는 것. public class Test { public static void main(String[] args) { T t = new T(); System.out.println(t.a); } } |
접근제어자(Access Modifier)
접근제어자(Access Modifier) public> protected> default> private |
||||
같은 class안 |
같은 package안 |
다른 패키지중 상속 자식까지 |
같은 프로젝트의 모든 범위 |
|
public | ㅇ | ㅇ | ㅇ | ㅇproject |
protected | ㅇ | ㅇ | ㅇp.class | |
default | ㅇ | ㅇ package | ||
private | ㅇclass |
[접근제어자] [기타제어자] 클래스명 { public/default} |
public Memory (){} |
default Memory (){} |
package one;
import two.Memory;
//나와 다른 패키지안의 클래스나 메소드를 끌어올때 소속 명시
//형식 : import 패키지경로.패키지경로.클래스명;
public class Test {
public static void main(String[] args) {
Memory m1 = new Memory("기타생성자", 5);
Memory m2 = new Memory ();
}
}
package two;
public class Memory {
String str;
int num;
public Memory () {} //기본생성자
public Memory (String str, int num) { //기타생성자
this.str = str;
this.num = num;
}//Constructor Overloading
public String returnStr() {return str;}
public int returnNum() {return num;}
}
package one; import two.Memory; //나와 다른 패키지안의 클래스나 메소드를 끌어올때 소속 명시 //형식 : import 패키지경로.패키지경로.클래스명; public class test { public static void main(String[] args) { Memory m1 - new Memory(); } } |
728x90
반응형
'[JAVA]' 카테고리의 다른 글
[20231220] 8일차 오후 (0) | 2023.12.20 |
---|---|
[20231220] 8일차 - 객체 (0) | 2023.12.20 |
[20231219] 7일차 오전 Constructor (0) | 2023.12.19 |
[20231218] 6일차 오후 method overloading class (0) | 2023.12.18 |
[20231218] 6일차 오전 - 메소드 절대값 오버로딩 (0) | 2023.12.18 |