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
}
}

 

 

==(동등비교연산자)  
변수인 경우 값을 비교
객체인 경우 주소값을 비교
ArgumentClass
package 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
반응형

+ Recent posts