728x90
반응형
Q1. 간단한 출력문을 이용한 메시지 출력
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!!");
}
}
Q2. 다양한 자료형과 변수 유형
public class Variables {
// 멤버 변수, 인스턴스 변수
int num1;
// 멤버 변수, 클래스 변수
static int num2;
// 매개변수
public void printName(String name) {
// 지역변수
String prtMsg = name + " Hello";
System.out.println(prtMsg);
}
public static void main(String[] args) {
// 인스턴스 생성
Variables mc = new Variables();
// 인스턴스 변수 사용
mc.num1 = 100;
// 클래스 변수 사용
Variables.num2 = 50; // num2 = 50 으로 사용해도 됨.
// 인자로 매개변수에 값을 전달
mc.printName("홍길동");
System.out.printf("%d,%d",mc.num1, Variables.num2);
}
}
- main() 에서 Variables 의 인스턴스를 생성하고 참조변수인 mc에 대입. 즉 mc 변수의 타입은 Variables 가 됨.
- mc.num1 과 같이 인스턴스 변수와 메서드를 사용가능.
- main 에서 num1 이나 msg 변수 printName(), getMessage() 메서드를 직접 호출하는 것은 안됨.
- main 에서 static 변수(클래스변수)인 num2는 사용 가능.
new를 이용해 생성한 인스턴스를 이용해 인스턴스 변수를 사용할 수 있고, -> 참조변수명.멤버 변수명
클래스 변수는 클래스에서 static으로 생성한 변수를 이용해 클래스 변수를 사용할 수 있다.
-> 클래스명.멤버 변수명 혹은 멤버 변수명
Q3. 다양한 메서드 유형 선언과 사용
public class Methods {
String name;
// 생성자 메서드
Methods() {
name = "홍길동";
System.out.printf("#생성자: %s\n",name);
}
// 인자가 없는 메서드
void printName() {
System.out.printf("#printName(): %s\n",name);
}
// 인자가 하나인 메서드(메서드 오버로딩), 인자 값이 출력됨.
void printName(String name) {
System.out.printf("#printName(String name): %s\n", name);
}
// 가변인자를 사용한 메서드
void printNames(String...name) {
System.out.println("#printNames(String...name)");
for(String s : name) {
System.out.println(s);
}
}
// 인자가 두개인 메서드
int calc(int num1, int num2){
return num1+num2;
}
public static void main(String[] args) {
Methods m = new Methods();
m.printName();
m.printName("김길동");
m.printNames("아무개","홍길동","김사랑");
System.out.printf("#calc(int num1, int num2): %d ", m.calc(20,50));
}
}
- 생성자 메서드는 객체가 생성될때 자동으로 호출.
- 동일한 이름의 메서드는 인자에 따라 해당 메서드가 호출됨.
- 가변인자를 통해 그때 그때 필요한 인자를 전달 가능.
- 리턴이 있는 메서드는 리턴값을 받아 사용.
Methods 클래스의 m이라는 참조변수를 가지는 인스턴스 생성해 참조변수를 이용해 메서드를 호출한다.
메서드 오버로딩 : 동일한 이름의 메서드는 인자에 따라 해당 메서드가 호출된다.
가변인자 : String...name을 이용해 (String s : name)라는 조건에 따라 인자를 전달 가능하다.
Q4. 사칙연산과 대입연산
public class Operator1 {
public static void main(String[] args) {
int num1 = 30;
int num2 = 14;
int result1 = num1 * num2;
int result2 = num1 % num2;
System.out.printf("result1 : %d \n", result1);
System.out.printf("result2 : %d \n", result2);
System.out.println("-------------------");
num1++;
num2 *= 2;
System.out.printf("num1++ : %d \n", num1);
System.out.printf("num2 *= 2 : %d \n", num2);
System.out.println("-------------------");
System.out.printf("num1++ : %d \n", num1++);
System.out.printf("--num1 : %d \n", --num1);
}
}
Q5. 비트 시프트 연산과 XOR 연산
public class Operator2 {
public static void main(String[] args) {
int num1 = 50;
System.out.printf("정수값 num1 : %d, %s\n", num1, Integer.toBinaryString(num1));
int result1 = num1 >> 1;
System.out.printf("num1 >> 1 : %d, %s\n", result1, Integer.toBinaryString(result1));
int result2 = num1 << 1;
System.out.printf("num1 << 1 : %d, %s\n", result2, Integer.toBinaryString(result2));
System.out.println("------------------");
int pwd = 123456;
int encPwd, decPwd;
int key = 0x1A253B65;
System.out.println("암호화 전 비밀번호 : "+pwd);
encPwd = pwd ^ key;
System.out.println("암호화 후 비밀번호 : "+encPwd);
decPwd = encPwd ^ key;
System.out.println("복호화 후 비밀번호 : "+decPwd);
}
}
Integer.toBinaryString()
비트 XOR 연산 : ^
encPwd=pwd ^ key;
decPwd=encPwd ^ key;
728x90
반응형
'Java > Java 2' 카테고리의 다른 글
[Java 실습] 3. 자바 기본문법2 (0) | 2021.07.15 |
---|---|
[Java] 3. 자바 기본문법 2 (0) | 2021.07.15 |
[Java] 2. 자바 기본문법 (0) | 2021.07.15 |
[Java] 1. 자바와 자바 가상머신 (0) | 2021.07.15 |
자바 공부하기 (0) | 2021.07.15 |