본문 바로가기
수업

10월 8일 - static, class, Literal, MethodMath

by hojin880214 2018. 10. 8.


public class StaticTest{


static int i = 1; // new 연산자로 초기화없이 바로 static으로 메모리에 올려줌

static int j = 1; // new 연산자로 초기화없이 바로 static으로 메모리에 올려줌



static int workMethod(){

/*

static 변수,함수,클래스=식별자 앞에서 쓸수 있고 메모리에 올려주는 키워드

int데이터형 workMethod 함수 매개변수X

*/

int i = 100; //int데이터타입 i변수를 데이터값 100으로 초기화


return i; //int데이터타입 함수이므로 return값도 int데이터형으로

}


public static void main(String args[]){


StaticTest st = new StaticTest();

/*

StaticTest 클래스 자기자신을 데이터로 사용

StaticTest 클래스타입데이터로 선언

st 참조변수 선언

대입연산자 선언

new 연산자 선언

StaticTest() 객체생성자 선언

*/

System.out.println(" st >>> : " + st);

// 객체생성자로 초기화한 참조변수 st의 주소값을 출력

System.out.println(" j >>> : " + j);

// static 키워드로 메모리에 올린 j 멤버변수 소속변수 필드의 값을 출력

int ii = workMethod();

// int데이터타입 ii변수를 static으로 메모리에 올려놓은 workMethod()함수에 초기화

System.out.println(" ii >>> : " + ii);

// static 으로 메모리에 올려놓은 workMethod()함수를 출력

int iii = st.workMethod();

// int 데이터타입 iii 변수를 다른 주소 workMethod()함수로 초기화

System.out.println(" iii >>> : " + iii );

// 이미 static 메모리에 올린 걸 또 메모리에 올리면 다른 주소값이 나오므로 지양해야한다

} // end of main()


} // end of StaticTest





public class ClassTest{

// 필드, 소속변수, 멤버변수


// 1. 상수를 맨 먼저 기술한다.

public static final int INT_VAL = 1111;

/*

숫자 상수 static메모리에 올린 final 변하지 않는

int데이터타입 INT_VAL 변수명 선언

대입연산자 선언 데이터값 1111로 초기화

*/

public static final String STR_VAL = "난 문자 상수";

/*

static메모리에 올린 final 변하지 않는

int데이터타입 STR_VAL 변수명 선언

대입연산자선언 데이터값 "난 문자 상수"로 초기화

*/

// 2. 멤버변수 선언

int i;


// 3. 생성자 선언

public ClassTest(){

}


// 4. 함수 선언

void workMethod(){ //return형이 없는 void 키워드로 workMeThod함수 매개변수x

System.out.println(" workMethod() ");

// 메인함수에서 workMethod에 대한 출력값이 없어서 출력x

}


int workMethod_1(int i){//int데이터타입 workMethod_1함수 int i매개변수

int ss = i; //int데이터타입 ss변수를 i로 초기화


return ss; //int데이터타입함수이므로 int데이터타입 값이 나와야한다

}


// 5. main() 함수 기술

public static void main(String args[]){


ClassTest ct = new ClassTest();

/*

ClassTest 클래스 자기자신을 데이터로 사용

ClassTest클래스데이터타입으로 선언

ct 참조변수로 선언

대입연산자 선언

new연산자 선언

ClassTest()객체생성자로 초기화시킴

*/


System.out.println(" ct >>> : " + ct);

// ClassTest()객체생성자로 초기화시킨 ct참조함수의 주소값을 출력

System.out.println(" ct.i >>> : " + ct.i);

// ClassTest()객체생성자로 초기화시킨 ct참조함수의 i(멤버변수,소속변수,필드)의 초기화한 값을 출력

System.out.println(" INT_VAL >>> : " + INT_VAL);

// int INT_VAL 변수의 상수값을 출력

System.out.println(" STR_VAL >>> : " + STR_VAL);

// int STR_VAL 변수의 상수값을 출력

System.out.println("ClassTest.INT_VAL >>> : " + ClassTest.INT_VAL);

// 링크연산자를 사용하여 ClassTest래퍼클래스의 INT_VAL 상수값을 출력

System.out.println("ClassTest.STR_VAL >>> : " + ClassTest.STR_VAL);

// 링크연산자를 사용하여 ClassTest래퍼클래스의 STR_VAL 상수값을 출력

System.out.println("ct.INT_VAL >>> : " + ct.INT_VAL);

/* ct참조함수의 INT_VAL 상수값을 출력

static 키워드로 이미 메모리에 올라가 있으므로 참조함수는 또 다른 주소이니 지양해야한다

*/

System.out.println("ct.STR_VAL >>> : " + ct.STR_VAL);

/* ct참조함수의 STR_VAL 상수값을 출력

static 키워드로 이미 메모리에 올라가 있으므로 참조함수는 또 다른 주소이니 지양해야한다

*/

}




} // end of ClassTest class











public class LiteralTest{


public void workMethod(char aVal, char zVal){

//void로 리턴값이 없다 workMethod함수명 char aVal, char zVal 매개변수

//char aVal = 'A';

int iVal = aVal; // char aVal = 'A' = int iVal

char aVal1 = (char)iVal; // ????????????


System.out.println(" aVal >>> : " + aVal); // char데이터형으로 출력

System.out.println(" iVal >>> : " + iVal); // int데이터형으로 출력

System.out.println(" aVal1 >>> : " + aVal1); // char데이터형으로 출력


//char zVal = 'Z';

int jVal = zVal; // char zVal = 'Z' = int jVal

char zVal1 = (char)jVal; // ??????????????


System.out.println(" zVal >>> : " + zVal); // char 데이터형으로 출력

System.out.println(" jVal >>> : " + jVal); // int 데이터형으로 출력

System.out.println(" zVal1 >>> : " + zVal1); // char 데이터형으로 출력




}




public static void main(String args[]){


char aVal = 'A'; // char 데이터타입선언 aVal함수명선언 대입연산자선언 데이터값 A선언

char zVal = 'Z'; // char 데이터타입 zVal변수명 대입연산자 문자 Z로 초기화


LiteralTest lt = new LiteralTest(); // LiteralTest클래스 자기자신을 데이터로 사용

lt.workMethod(aVal, zVal); // void workMethod 함수이므로 출력문장을 메인함수에서 x





} // end of main()


} // end of LiteralTest class














public class HelloLiterals{


static long cCN = 1234_5678_9012_3456L; // int가 표현할 수 있는 수보다 커서 L이라고 형변환?

static long sSN = 999_99_9999L; // int가 표현할 수 있는 수보다 커서 L이라고 형변환?

static float pi = 3.14_15F; // int가 표현할 수 있는 수보다 커서 F이라고 형변환?




void workMethod(){ // 리턴형이 아니라서 return값이 없다

System.out.println(0b1010); // 2진수로 출력

int i = 10000; // int데이터타입선언 i변수명 선언 대입연산자 선언 데이터값 10000선언 문자종결자선언

System.out.println(" 이진수 : " + Integer.toBinaryString(i));

// Integer 래퍼클래스에 있는 toBinaryString함수에 i변수값을 대입하여 출력

System.out.println(" 팔진수 : 0" + Integer.toOctalString(i));

// Integer 래퍼클래스에 있는 toOctalString함수에 i변수값을 대입하여 출력

System.out.println(" 십육진수 : 0x" + Integer.toHexString(i));

// Integer 래퍼클래스에 있는 toHexString함수에 i변수값을 대입하여 출력

String toBinary = Integer.toBinaryString(i);

/*

String 데이터타입의 toBinary변수를 Integer 래퍼클래스에 있는

toBinaryString함수에 i변수값을 대입한 값으로 초기화

*/

System.out.println(" 이진수 : " + toBinary); // toBinary 변수값 출력

String toOctal = Integer.toOctalString(i);

/*

String 데이터타입의 toOctal변수를 Integer 래퍼클래스에 있는

toOctalString함수에 i변수값을 대입한 값으로 초기화

*/

System.out.println(" 팔진수 : " + toOctal); // toOctal 변수값 출력

String toHex = Integer.toHexString(i);

/*

String 데이터타입의 toHex변수를 integer 래퍼클래스에 있는

toHexString함수에 i변수값을 대입한 값으로 초기화

*/

System.out.println(" 십육진수 : " + toHex); // toHex 변수값 출력


}


public static void main(String args[]){

HelloLiterals hl = new HelloLiterals(); // HellowLiterals클래스 자기자신을 데이터로 사용

hl.workMethod(); // 메모리에 올라간 h1참조함수의 workMethod함수를 실행


} // end of main()


} // end of HelloLiterals class




public class MethodMath{


int addSum(int i, int ii){ //int데이터타입 선언 addSum 변수명선언 매개변수 int i, int ii로 선언


int addSum = i + ii; // int데이터타입 addSum함수를 i + ii;값으로 초기화


return addSum; //int데이터타입 함수이므로 리턴값도 int데이터타입이여야 한다


}



public static void main(String args[]){

/*

지역변수는 함수안에서 태어나고 함수안에서 죽는다 

지역변수는 선언과 함께 꼭 초기화해서 사용해야한다

지역변수의 메모리 할당,해제는 JVM이 한다

*/

int x = 2; //int 데이터타입선언 변수이름 x선언 대입연산자 데이터값 2로 초기화함 문자종결자

int y = 3; //int  데이터타입선언 y변수명선언 대입연산자 데이터값3으로초기화 문자종결자


MethodMath

StaticTest.java

ClassTest.java

HelloLiterals.java

MethodMath.java

mm = new MethodMath();

/*

MethodMath 클래스 자기자신을 데이터로 사용

MethodMath클래스데이터타입으로 선언 mm참조변수선언

대입연산자 선언 new연산자 선언 링크연산자 선언

MethodMath()객체생성자선언

*/

System.out.println(" mm >>> : " + mm); // mm의 주소값을 출력


int addSum = mm.addSum(x, y);

/*

int 데이터타입선언 addSum 변수명선언 대입연산자선언

메모리값에 올라가 있는 mm참조변수 주소의 addSum함수 매개변수x,y 값으로 초기화

*/

System.out.println(" addSum >>> : " + addSum); //addSum 함수의 값을 출력



} // end of main()


} // end of MethodMath


댓글