Java 기초 2

2025. 1. 15. 18:15·Java

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;
	}
}

 

저작자표시 비영리 변경금지 (새창열림)
'Java' 카테고리의 다른 글
  • 복습 8 - java 기초
  • Java 기초 4
  • Java 기초 3
  • Java 기초 1
9na0
9na0
응애
  • 9na0
    구나딩
    9na0
  • 전체
    오늘
    어제
    • 분류 전체보기 (211)
      • Web (118)
      • Java (28)
      • 데이터베이스 (14)
      • 세팅 (12)
      • 과제 (3)
      • 쪽지시험 (2)
      • 정보처리기사 (4)
      • 서버 (25)
  • 블로그 메뉴

    • 링크

      • 포폴
      • 구깃
    • 공지사항

    • 인기 글

    • 태그

      net5~10
      spring-boot
      file25_t
      file25
      datalist
      Oracle
      macbook pro m4
      ab1
      file24
      re2
      noticewriteok
      io_dto
      re_java10
      java_io1~10
      net1
      net2
      net4
      notice_writer
      exam1_1~10
      net3
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    9na0
    Java 기초 2
    상단으로

    티스토리툴바