1. if문
public class oop7 {
public static void main(String[] args) {
oop7_box ob = new oop7_box();
String username = "홍길동";
ob.login(username);
System.out.println(ob.muleo(33, 42, 82));
System.out.println(ob.enck("hong@nate.com", "홍길동"));
}
}
class oop7_box{
public void login(String mname) {
String mid = "hong";
String mpass = "a1234";
if(mid =="hong" && mname.equals("홍길동")) {
System.out.println("아이디 확인");
}else {
System.out.println("아이디 미확인");
}
if(!mpass.equals("b1234")) {
System.out.println("패스워드가 다릅니다.");
}else {
System.out.println("패스워드가 같습니다.");
}
int no = 500;
if(no == 500) {
System.out.println("동일한 숫자입니다");
}
}
- 문자열 비교시 == 사용하면 가끔 오류 => equals()사용
- 부정은 앞에 !
- 문자열에만 사용
😊응용문제
메인 메소드에서 인자값으로 33 42 82를 외부 클래스로 전달
해당 숫자를 모두 곱한 후 짝수인지 홀수인지를 return으로 출력
public String muleo(int a, int b, int c) {
int result = a*b*c;
String msg = "";
if(result%2==0) {
msg = "짝수";
}else {
msg = "홀수";
}
return msg;
}
이메일 : hong@nate.com 과 고객명 : 홍길동 을 외부 클래스로 전달할 경우
두 값이 모두 일치할 경우 return으로 해당 고객정보를 확인하였습니다. 라는 결과값을 출력하며
두가지 값중 한가지라도 다를경우 "일치하는 고객정보가 없습니다."라고 출력
public String enck(String email, String name) {
String msg = "";
if(email.equals("hong@nate.com")&&name.equals("홍길동")) {
msg = "해당 고객정보를 확인하였습니다.";
}else {
msg = "일치하는 고객정보가 없습니다.";
}
return msg;
}
2. 상속, 상수, 복수(중첩) 클래스
public class oop8 {
public static void main(String[] args) {
oop8_box2 ob = new oop8_box2();
ob.aaa();
ob.bbb();
oop8_box3 ob3 = new oop8_box3(); //부모 클래스를 객체
ob3.zzz();
//중첩 클래스 로드
oop8_box3.box4 ob4 = ob3.new box4(); //부모 클래스 로드 후 자식 클래스 선언
ob4.abc();
}
}
class oop8_box{
int no = 15000; //변
final int delivery = 3000; //상수 : 고정값 변경 불가능
public void bbb() {
System.out.println("bbb method");
}
public void aaa() { //상속받을 클래스에 같은 메소드 형태가 있을 경우 작동 불능이 발생
System.out.println("aaa method mother");
}
}
class oop8_box2 extends oop8_box{
public void aaa() {
System.out.println(this.no);
System.out.println("aaa method");
}
}
class oop8_box3{ //부모 클래스
int n = 10;
class box4{
public void abc() {
int sum = 50 * n; //자식클래스 안의 변수라면 this.를 써야하지만 부모클래스의 변수를 쓸땐 그냥 씀
System.out.println("abc 중첩 클래스 메소드 "+ sum);
}
}
public void zzz() {
System.out.println("box3 클래스 안 메소드");
}
}
- extends : 상속
- 외부 클래스를 상속시켜서 자신의 클래스에 사용할 수 있도록 설정하는 클래스
- 상속을 하게 되면, 메소드와 필드에 있는 변수값 모두 사용할 수 있음
- 상속받을 클래스에 상속하는 클래스와 같은 이름의 메소드가 있을 경우 상속하는 클래스의 메소드 작동이 안됨
- 중첩 클래스 : 클래스 속의 클래스
- 선언시 부모를 먼저 선언하고 부모를 이용해 자식 선언
- 자식 클래스 안의 메소드에서 부모 클래스의 변수를 사용할때 그냥 사용
- 자식클래스의 메소드에서 자식클래스의 변수를 사용할땐 this. 사용
- final 변수 : 상수 //변하지않음
3. 패키지 내 java 파일과 연계
실행파일
package basic_html;
public class oop9 {
public static void main(String[] args) {
//즉시실행메소드가 있을경우 아래의 코드처럼 인자값을 전달 가능
oop10 op = new oop10("hong", "01012345678", 33);
String id = "admin";
String result = op.idcheck(id);
System.out.println(result);
}
}
다른파일
public class oop10 { // 굳이 public 안써도 됨 main이 없어서
String userid, usertel;
int age;
public oop10(String a, String b, int c) { // 즉시실행 메소드
//setter 역할
this.userid = a;
this.usertel = b;
this.age = c;
this.member();
}
public void member() { // getter 역할로 출력
System.out.println(this.userid);
System.out.println(this.usertel);
System.out.println(this.age);
}
public String idcheck(String id) {
String msg = "";
switch (id) {
case "hong":
case "HONG":
msg = "홍길동";
break;
case "park":
msg = "박가은";
break;
case "admin":
msg = "관리자";
break;
default:
msg = "확인되지않은 사용자";
break;
}
return msg;
}
}
- setter : 필드에 있는 변수에 값을 이관
- getter : 필드에 있는 변수값을 가져옴
😊응용문제
파일 2개
실행 : Main.java
결과값 리턴 : dataload.java
main.java에 다음과 같이 인수값 5 10 15 20 전달하며
+, -, /,* 사칙연산기호를 dataload 전달시 모두 연산한 값과
odd 메소드 : 홀수 합
even 메소드 : 짝수 합
[결과]
모든 수 합계 : 50
모든 수 곱한 값 : 15000
Odd 합계 : 20
Even 합계 : 30
Main.java
public class main {
public static void main(String[] args) {
dataload dl = new dataload();
int sum = dl.cal(5, 10, 15, 20, "+");
int mul = dl.cal(5, 10, 15, 20, "*");
System.out.println("모든 수 합 : "+sum);
System.out.println("모든 수 곱 : "+mul);
int odd = dl.odd(5, 10, 15, 20);
int even = dl.even(5, 10, 15, 20);
System.out.println("Odd 합 : "+odd);
System.out.println("Even 합 : "+even);
}
}
dataload.java
public class dataload {
public int cal(int a, int b, int c, int d, String sym) {
int sum = 0;
int mul = 0;
if(sym.equals("+")) {
sum = a+b+c+d;
return sum;
}else if(sym.equals("*")) {
mul = a*b*c*d;
return mul;
}else {
return 0;
}
}
public int odd(int n1, int n2, int n3, int n4) {
int sum = 0;
int[] n = {n1,n2,n3,n4};
int i = 0;
while(i<4) {
if(n[i]%2!=0) {
sum+=n[i];
}
i++;
}
return sum;
}
public int even(int n1, int n2, int n3, int n4) {
int sum = 0;
int[] n = {n1,n2,n3,n4};
int i = 0;
while(i<4) {
if(n[i]%2==0) {
sum+=n[i];
}
i++;
}
return sum;
}
}