package re_html; //그룹
public class re_java1 { // 클래스
// 메인 메소드
public static void main(String[] args) {
String data1 = "hong";
String data2 = "25";
re_box1 rb = new re_box1(data1, data2);
rb.check();
}
}
//Java 메소드는 같은 이름 또는 같은 자료형이라도 매개변수의 종류에 따라 다르게 인식
class re_box1 {
// public(다가능), private(해당 클래스만), protected(같은 패키지만)
// 필드에 선언된 것들은 전부 this를 사용!
String a, b, c; // 변수들은 기본 public으로 설정되어있음
protected re_box1(String data1, String data2) { // 즉시실행 private하면 실행안됨!! public과 protected만 사용
this.a = data1; // setter
this.b = data2; // setter
}
protected re_box1(String data1) {
this.a = data1;
}
// 일반 void 메소드 (return 없음) => 자료형 및 리턴이 없는 메소드
public void check() {
System.out.println(this.a);
String msg = this.level(); //return 함수를 호출 후 결과값을 받는 코드
System.out.println(msg); //결과값을 출력하는 코드
}
public String level() {
String levels = ""; //return에서 결과값을 사용할 변수
if (this.a == "hong") {
levels = "실버회원";
}else {
levels = "비회원";
}
return levels;
}
}
- 메소드끼리 같은 이름 가능 대신 매개변수 다르게!
- 즉시 실행 메소드 : 클래스와 메소드 같은 이름 사용
- 접근제한자 : public(모두 가능) protected(같은 패키지) private(같은 클래스)
- setter 잘 사용하기
- return 함수 : 메소드의 자료형과 리턴값의 자료형 일치
- 전역변수 : this 사용
package re_html;
import java.util.Scanner;
public class re_java2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("패스워드를 입력하세요 : ");
String passwd = sc.next();
System.out.println("동일한 패스워드를 입력하세요 : ");
String passwd2 = sc.next();
re_java2_box rb = new re_java2_box();
String result = rb.check(passwd, passwd2);
if(result =="no") {
System.out.println("동일한 패스워드가 아닙니다.");
}else {
System.out.println("패스워드가 동일합니다.");
}
sc.close();
}
}
class re_java2_box {
public String check(String passwd, String passwd2) { // return 메소드 (자료형에 맞게 값을 이관)
String ck = "";
if(passwd.equals(passwd2)) { //equals안쓸거면 스캔받을때 intern쓰기
ck = "yes";
}else {
ck = "no";
}
return ck;
}
}
- Scanner : 사용자가 입력하는 가상의 입력창
- nextLine(), next() : 문자
- nextInt() : 숫자, nextFloat() : 소수점 등등 다있음
- 주의점 : nextLine을 사용시 자료형 변경될경우 다시 사용 불가능 버그남!
- ==,!= : 문자일때 사용하면 오류남 -> equals 사용
- equals안쓸거면 스캔받을때 intern쓰기
- 숫자는 연산기호 가능
package re_html;
import java.util.Scanner;
//반복문 결과를 받는 코드
public class re_java3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("숫자를 입력하세요(1~10까지) : ");
int no = sc.nextInt();
if (1 < no || no > 10) {
System.out.println("숫자는 1~10까지만 입력하세요");
main(args); // 재귀함수로 해당 메소드를 재호출
} else {
re_java3_box rj = new re_java3_box();
int result = rj.plus(no);
System.out.println("최종 결과 합계 : " + result);
}
sc.close();
}
}
class re_java3_box {
int f;
public int plus(int no) { // return을 사용하는 경우 매개변수로 값을 받은 후 결과를 회신
// 사용자가 입력한 값을 1부터 모두 더하는 반복문
int sum = 0;
this.f = 1;
while(this.f <= no) {
sum = this.f;
this.f++;
}
return sum;
}
}
- 재귀함수 : 본인을 호출 //매개변수 주의메소드에서 값을 이관하는 방식
- 1. 필드에 변수를 선언하여 값을 이관하는 방식
- 2. 매개변수로 메소드로 전달하여 이관하는 방식