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
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
'수업' 카테고리의 다른 글
10월 11일 - 명령행인수(CommandLineArg) (0) | 2018.10.11 |
---|---|
10월 10일 - 생성자, 패키지컴파일, import (0) | 2018.10.10 |
10월 7일 (0) | 2018.10.07 |
10월 5일 - return형 함수, void 함수 (0) | 2018.10.05 |
10월 4일 - 기초자료형과 디폴트값, 사용자정의클래스 객체생성자 (0) | 2018.10.04 |
댓글