JAVA

수업 코드 내용 정리

softPattern 2023. 8. 1. 00:41

수업 내용

package jb01.part02;

/*
FileName: Hello.java
*/
public class Hello
{
//1줄 주석: 컴파일시 주석문은 컴파일시 제외)
//java 실행에 필요한 method : main method
	public static void main(String[] args)
	{
		System.out.println("Hello Java :: 안녕 자바");
	} //end of main
}// end of class

/* => 다줄문 주석: 컴파일시 제외

	<<주의사항 및 약속사항>>
	1. class name과 file name은 동일해야 한다.
	ex) public class Hello 면 ===> Hello.Java (File Name)
	2. 대소문자를 구별
	3. 실행시 public static void main (String[] args) 필요
	4. System.out.println( ~~~); ==> console 출력
	5. Hello.java 컴파일 후 Hello.class(ByteCode) 생성 확인

<< Console(DOS화면)에서 compile & run >>

1. File save
  - FileName : Hello.java ===> FileName과 ClassName은 동일

2. Compile
	1) file 저장 directory로 이동 후 conpile ==> javac 확장자포함 FileName
	c:\\\\work>javac Hello.java
	2) classFile 생성 확인 ==> byte code 생성 확인 (Hello.class)
	c:\\\\work>dir

3. 실행
	3) run ==> java 확장자를 제외한 FileName
	c:\\\\work>java Hello

	<< EditPlus 환경설정: 컴파일, 실행 등록하기 >>
	===> 문서/영구적설정에서 등록할 수 있음


package jb01.part03;

/*
FileName : Hi.java
*/
public class Hi
{
	public static void main (String[] args)
	{
		System.out.println("1번째 정보: "+args[0]);
		System.out.println("2번째 아구먼트: "+args[1]);
		System.out.println("3번째 인자: "+args[2]);
	}//end of main
}//end of class

/*
	1. compile 방법 (Console에서)
		c:\\\\work>javac Hi.java

		====> bytecode 생성 Hi.class: 확인할 것

	2. 실행 방법
		java Hi 홍길동 1234 한양 5678

	===>Hi.class를 실행 시 java Hi 후단에 추가적 정보를 입력하면
	===>main method 내부에서
	===>1번째 추가적 정보는: args[0]
	===>2번째 추가적 정보는: args[1]
	===>3번째 추가적 정보는: args[2]
	===>로 받아 처리할 수 있다.

	3. +(연산자): 문자에 + 를 사용하면 append 된다.

	4. editplus 에서 인자값 받기 설정
		문서/영구적설정/사용자도구/인수내용묻기 check
*/


package jb01.part04;
/*
	FileName : PrimitiveTest.java

	1. Java 에서 제공되는 8EA의 Primitive Data type의 이해
	2. Variable declaration(변수 선언)과 Variable Assignment(값의 대입)
*/

public class PrimitiveTest
{
	//mian method
	public static void main(String[] args) {

	//논리형
	boolean boo = true;

	//문자형
	char c = '홍';

	//정수형
	byte b = 127;
	//범위를 넘어서는 수를 담을 경우 문제 발생//==> compile error 발생( 확인요망)
	//byte b1 = 128;

	short s = 1000;
	int i = 1000;
	long l = 1000L;     // <===long의 경우 000l 또는 000L로 int와 구별

	//실수형
	float f = 1000.5F;  // <===float의 경우 000F 또는 000f로 double 과 구별

	//print() 와 println()의 차이점 <==실행결과를 확인함
	System.out.print("자바의 Primitive Data type 을 ++");
	Systme.out.println("::사용하여 표준출력장치로,,,"+":: 출력");

	//+ 연산자의 의미 (문자와 + 연산자가 사용되면 append)
	System.out.println("논리형 : "+boo);
	System.out.println("문자형 : "+c);
	System.out.println("정수형 byte : "+b);
	System.out.println("정수형 short : "+s);
	System.out.println("정수형 int : "+i);
	System.out.println("정수형 long : "+l);
	System.out.println("정수형 float : "+f);
	System.out.println("정수형 double : "+d);
	}//end of main
}//end of class


package jb01.part04;
/*
	FileName : CalculationTest.java
*/
public class CalculationTest
{
	//main method
	public static void main(String[] args) {

		int a;		// int data type variable a declaration
		a = 0;		// int data type variable a 에 value 대입
		int b = 1;	// int datatype variable b declaratio과 동시에 value 대입
		int c = 2;

		// 변수의 값을 출력(문자 + 연산자 사용 ==> append)
		System.out.println("a = " +a+":b ="+b+":c ="+c);

		// 숫자 + 연산자 사용(계산)
		int sum = a+b+c;
		System.out.println("sum = "+sum);
		System.out.println("a+b+c = "+(a+b+c));     //==>아래 실행문과 출력 결과 비교
		System.out.println("a+b+c = "+a+b+c);		//==>위 실행문과 출력 결과 비교

		c = c+10;
		System.out.println("c=(c+10) : "+c);

		//연산 후 대입연산자 (+=) 사용 (c = c+10 동일한 의미)
		c += 10;
		System.out.println("c+=10 ="+c);

		//논리 반전 연산자
		boolean boo1 = true;
		boolena boo2 = ! boo1;

		System.out.println("boo1: "+boo1);
		System.out.println("boo2: "+boo2);
	} //end of mian
} //end of class


package jb01.part05;
/*
	FileName : CastingTest.java

	1.primitive data type의 형변환: 묵시적 형변환/명시적 형변환
	2.reference data type의 형변환: 묵시적 형변환/명시적 형변환 ===> 추후
*/
public class CastingTest
{
	public static void main(String[] args) {

	byte b1=100;
	byte b2=20;

	//==> compile error 발생 (확인요망)
	//==> 정수형의 계산은 int return
	//byte b3=b1+b2;

	//casting 연산자를 이용한 형변환 ===> 명시적 형변환
	byte b4 = (byte)(b1+b2);
	System.out.println("b4(b1+b2): "+b4);

	byte b5 = (byte)(b1+b4);
	//쓰레기값 출력(===> 실행시 출력결과 확인할 것)
	System.out.println("b5(b1+b4): "+b5);

	/====> 묵시적인 형변환
	int i1 = b1 + b2 ;
	System.out.println(i1);
	int i2 = b1 + b4;
	System.out.println(i2);

	//다른 data type 연산 ===> data type 이 큰 쪽으로 묵시적 형변환
	double test01 = 100 + 0.5;
	System.out.println(test01);
	//==>compile error 발생(확인요망)
	//int test02 = 100 + 0.5;

	//실수를 정수형에 대입하면 결과는 --->??
	int i3 = 201/2;
	System.out.println("i3(201/2): "+i3);

	//정수의 계산을 실수형에 대입한 결과는 --->??
	double d1 = 201/2;
	System.out.println("d1(201/2): "+d1);

	//정수 int Data 201을 실수 double Data Type으로 명시적 형변환 후 계산 결과를 double Data type으로 받으면 출력 결과는??
	double d2 = (double)201/2;
	System.out.println("d2(201/2): "+d2);
	}//end of mian
}//end of class


package jb01.part06;
/*
	FileName : OperatorTest.java

	1. ++, --: 증가, 감소연산자
	2. % : 나머지 연산자
	3. 3항 연산자

*/
public class OperatorTest
{
	///main method
	public static void main (String[] args) {

	int value=1;

	//증감연산자의 사용
	value++:	//value++의미: 자기자신 1증가
	System.out.println("valus++: "+value);
	++value:	//++value의미: 자기자신 1증가
	System.out.println("++valus: "+value);

	value--: 	//value--의미: 자기자신 1감소
	System.out.println("value--: "+value);
	--value: 	//--value의미: 자기자신 1감소
	System.out.println("--value: "+value);

	//증가감소연산자 사용// ==> 주석을 풀면서 출력결과를 확인
	int temp = value++: //temp = value++를 의미: value의 값을 temp 대입 후 자기자신 1증가
	//int temp = value--: //temp = value--를 의미: value의 값을 temp 대입 후 자기자신 1감소
	//int temp = ++value: //temp = ++value를 의미: value 자기자신에 1증가 그값 temp 대입
	//int temp = --value: //temp = --value를 의미: value 자기자신에 1감소 그값 temp 대입
	System.out.println("temp: "+temp);
	System.out.println("value: "+value);

	//나머지 연산자 사용하기
	int temp01 = 5%2;
	int temp02 = 5%3;
	System.out.println("나머지 연산자: 5%2 ===> "+ temp01);
	System.out.println("나머지 연산자: 5%3 ===> "+ temp02);

	//삼항연산자 :: (조건)? 조건이 참이면 : 조건이 거짓이면 ;
	int temp03 = ( 1 <= 2 ) ? 3 : 4 ;
	System.out.println("삼항연산자: (1 <= 2) ? 3 : 4 ==> " +temp03);

	//int temp04 = ( 1 =< 2 ) ? 3 : 4 ; <== Compile Error 확인

	}//end of main
}//end of class


package jb01.part07;
/*
	FileName : IfElse01.java

	1. 비교연산자 연습
	2. 분기문 if - else 연습

*/

public class IfElse01
{
	//main method
	public static void main(String[] args) {

	//논리형 변수의 선언과 값의 대입
	boolean b1 = true;
	boolean b2;

	//! 반전연산자 사용
	b2 =!b1;
	int x = 1;
	itn y = 2;

	//if -els 가 같이 쓰이는 경우
	//if(조건문): 조건문은 반드시 boolean data type 일 것
	if(x<y){
	//if(0){ // ==> 주석풀고 컴파일 에러를 확인할 것.
		System.out.println("x= "+x+", y = "+y+ " y가 크네요");
	}else{
		System.out.println("x= "+x+", y = "+y+ " x가 크네요");
	}

	//if문 단독으로 쓰이는 경우
	if(x==y){
	//if(x = y){ //==>주석풀고 컴파일 에러를 확인할 것. 에러발생 이유는??
		System.out.println("x = "+x+", y = "+y+" x,y는 같아요");
	}

	//if - else if 가 쓰이는 경우
	if(b2){
		System.out.pirntln("if의 조건문이 b2= false입니다.");
	}else if(b1){
		System.out.pirntln("if의 조건문이 b1= true입니다.");
	}
	}//end of main
}//end of class


package jb01.part07;
/*
	FileName : IfElse02.java

	1. 조건연산자 연습
	2. 분기문 if - else 연습
	3. AND: &, && 연산자
	4. OR: |, || 연산자
*/

public class IfElse02
{
	//main method
	public static void main(String[] args) {

		int x = 1;
		int y = 2;

		//& ==> and 연산자
		if(x==3 & y==2){
		System.out.println("x=1이고 y=2입니다.");
		}
		//| ==> or 연산자
		if(x==1 | y==3){
		System.out.println("x=1이거나 y=3입니다.");
		}

		// && ===> and 연산자
		if(x==3 && y==2){
		System.out.println("x=1이고 y=2입니다.");
		}
		// || ===> or 연산자
		if(x==1 || y==3){
		System.out.println("x=1이거나 y=3입니다.");
		}

	/*
		1. &&와 &, ||와 |는 수행결과는 같으나
		2. 내부적으로는 수행방법은 엄격히 다르다.
		==> &와 |는 : 전부수행
		==> && 와 ||는 : 전자가 결과를 예측 가능할 경우 일부 수행하지 않음
	*/

	} //end of main
} //end of class


package jb01.part07;
/*
	FileName : IfElseETC.java

	1.문자를 int Data type 으로 변경하는 integer.parselnt() 사용
	2.특수문자를 사용하기 (\\\\t, \\\\n, \\\\")

	실행방법 예 >> java IfElseETC 1 2
*/

public class IfElseETC
{
	//main method
	public static void main(String[] args) {
		// ==> \\\\" 사용확인
		System.out.println("입력하신 \\\\"1번째 인수\\\\"는 : "+args[0]);
		System.out.println("입력하신 \\\\"2번째 인수\\\\"는 : "+args[1]);

		System.out.println("=====================================";

		//입력한 문자를 int Data type으로 변경 하는 integer.parselnt() 사용
		int i = integer.parselnt(args[0]);
		int j = integer.parselnt(args[1]);

		//i, j 변수에 값을 확인하자
		System.out.println("i="+i+"\\\\t j="+j);		//<==특수문자 \\\\t를 사용: 출력결과확인
		System.out.println("한줄처리\\\\n");		//<==특수문자 \\\\n를 사용: 출력결과확인
		System.out.println("=====================================");

		if(i>j){
			System.out.println("i가 j보다 큽니다.");
		}else if(i==j){
			System.out.println("i와 j는 같습니다.");
		}else if(i<j){
		System.out.println("i보다 j가 큽니다.");
		}
	} //end of main
} //end of class


package jb01.part08;
/*
	FileName : SwitchTest.java

	1.분기문 : switch 연습
*/

public class SwitchTest
{
	//main method
	public static void main(String[] args) {
		int inputData = integer.parselnt(args[0]);

		//switch문은 ()내부의 값과 case의 상수와 같으면 case 내부의 실행문을 수행
		//break문을 만날때까지 진행한다.

		//==> switch(변수) : 변수는 반드시 정수형일 것(byte,short,int,long,char. 5EA)
		switch(inputData)
		{
			case 1:
				System.out.println("입력하신 값은 1입니다.");
				break;
			case 2:
				System.out.println("입력하신 값은 2입니다.");
				break;
			case 3:
				System.out.println("입력하신 값은 3입니다.");
				break;
			case 4:
				System.out.println("입력하신 값은 4입니다.");
				break;
			case 5:
				System.out.println("입력하신 값은 5입니다.");
				break;
			default:
				System.out.println("case문을 다통과 동일상수가 없을 경우");
				System.out.println("default가 수행됨...입력하신 수는"+ inputData+"입니다.");
				break;
		}//end of switch
	} //end of main
} //end of class

/*
case 1: 의 break를 주석처리하고 실행해 보면 어떤 결과가 나오는지 확인 ===> break의 역할은?
*/