728x90
반응형
클래스변수와 인스턴스 변수
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;
//인자로 매개변수에 값을 전달
mc.printName("홍길동");
System.out.printf("%d, %d",mc.num1, Variables.num2);
}
}
main() 에서 Variables 의 인스턴스를 생성하고 참조변수 mc에 대입
: Variables mc=new Variables();
가변인자를 사용한 메서드
public class Methods {
String 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("아무개", "홍길동","김사랑"); //인스턴스 변수를 이용한 함수 호출
System.out.printf("#calc(int num1, num2) : %d", m.calc(20, 50));
}
}
- 동일한 이름의 메서드는 인자에 따라 해당 메서드가 호출됨.
- 가변인자를 통해 그때 그때 필요한 인자를 전달 가능.
- 리턴이 있는 메서드는 리턴값을 받아 사용.
사칙 연산, 대입 연산
package dinfree;
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); //31 출력
System.out.printf("num2 *= 2 : %d \n", num2);
System.out.println("-------------------");
System.out.printf("num1++ : %d \n", num1++); //31 출력 후 32로 변경
System.out.printf("--num1 : %d \n", --num1); //32에서 1감소. 31 출력
}
}
- ++x : 먼저 적용되고 출력
- x++ : 뒤에 사용하면 출력 후 변경
비트시프트 연산과 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); //123456
encPwd = pwd ^ key;
System.out.println("암호화 후 비밀번호 : "+encPwd); //438622501
decPwd = encPwd ^ key;
System.out.println("복호화 후 비밀번호 : "+decPwd); //123456
}
}
조건문
package dinfree;
import java.util.Scanner;
public class Conditional {
void login() {
Scanner scan=new Scanner(System.in);
System.out.print("# 아이디를 입력하세요 : ");
String uname=scan.next();
System.out.print("# 비밀번호를 입력하세요 : ");
String pwd=scan.next();
if(uname.equals("hong")&&pwd.equals("1234")) {
System.out.println("인증 확인!! -> 로그인 성공");
}
else {
System.out.println("아이디나 비밀번호가 틀렸습니다");
}
}
void check() {
int cnt=10;
String msg=cnt>0? "새로운 쪽지가 있습니다. ": "새로운 쪽지가 없습니다";
System.out.println(msg);
}
public static void main(String[] args) {
Conditional con = new Conditional();
while(true) {
System.out.printf("#메뉴를 선택하세요 (1:로그인, 2:쪽지확인, x:종료) ==> ");
Scanner scan=new Scanner(System.in);
String sel=scan.next();
switch(sel) {
case "1" : con.login();break; //break 반드시 필요
case "2":con.check();break; //break 반드시 필요
case "x":System.exit(0);
default:System.out.println("잘못된 입력입니다.");
}
}
}
}
3항 연산
: 간단하게 구현할 수 있는 조건문으로 비교적 간단한 if ~ else 구문 처리
조건? true인 경우 수행문장 : false인 경우 수행문장;
- 조건이 true 인 경우
- '?' 다음에 오는 문장이 수행
- 조건이 false 인 경우
- ':' 오른쪽 문장이 수행
String result = (login)? "로그인성공":"로그인실패";
반복문
public class Loop {
public static void main(String[] args) {
int power = 13;
String members[] = {"홍길동","김길동","김사랑","아무개"};
// 0 ~ 9 까지 즉 10회 반복
for(int i=0;i<10;i++) {
System.out.println(i);
}
// 배열의 인덱스를 이용해 데이터 출력
for(int i=0;i<10;i++) {
System.out.println(members[i]); //0~9까지 출력
}
// 배열 데이터 크기만큼 반복하면서 String 타입 데이터를 가지고 옴.
for(String name : members) {
System.out.println(name);
//for-each 형태로 출력
//홍길동 김길동 김사랑 아무개
}
// power > 10 보다 큰 경우에는 go() 함수를 호출해 동작시키고 power를 1감소
while(power > 10) {
System.out.println("go"); //13이기 때문에 3번 출력
power--; //13 -출력, 12 -출력, 11 -출력, 10 -종료
}
System.out.println("stop"); //1번출력
}
}
728x90
반응형
'Java > Java 3' 카테고리의 다른 글
[Java] Ch.03 상수와 형 변환 (0) | 2022.09.16 |
---|---|
[Java] Ch.02 변수와 자료형 (0) | 2022.09.16 |
[Java] Ch.01 자바의 구조 (0) | 2022.09.16 |
[Java] Chapter 21. 제네릭 1 (0) | 2021.07.21 |
[Java] 자바 공부하기 (0) | 2021.07.21 |