Day6

DeokHun KIM·2022년 7월 6일
0

java

목록 보기
10/30
  • ctrl 누르고 좌클릭하면 그 위치로 이동

Phone 클래스 작성 실습

  1. 클래스명 : Phone
  2. 속성(필드변수)
    가. 모델명 : name - String
    나. 타입 : type - String
    다. 가로크기 : hsize - int
    라. 세로크기 : vsize - int
    마. LCD유무 : hasLCD - boolean
  3. 생성자
    가. 기본생성자(default Constructor)
    나. 파라미터값 : 모델명, 타입
    다. 파라미터값 : 모델명, 타입, LCD유무
  4. 기능(메서드)
    가. 전화걸기 : call
    1) 화면출력: "전화걸기"
    나. 전화받기 : receiveCall
    1) 화면출력: "전화받기"
    다. 메시지 보내기 : sendSms
    1) 메시지를 String 타입으로 받아서 보냅니다
    2) 화면출력: "[메시지전송]" + 메시지내용(파라미터값)
    라. 메시지 받기 : receiveSms
    1) 받은 메시지를 String 타입으로 돌려줍니다.(return)
    2) 화면출력: "[메시지수신]" + 받은메시지(파라미터값)
    마. 전화기 정보 확인 : view

phone class

public class Phone {
	String name;  //모델명
	String type;  //타입
    int hsize;  
    int vsize;
    boolean hasLCD; //LCD 유무
    
    // 생성자 ---------------------------------
    Phone () {}
    
	Phone (String name, String type) {
		this.name = name; // this 현재객체(인스턴스)
		this.type = type; 
	}
	
	Phone (String name, String type, boolean hasLCD) {
		this.name = name; // this 현재객체(인스턴스)
		this.type = type;
		this.hasLCD = hasLCD;
	}
	
	// 메소드 ---------------------------------
	void call () {
		System.out.println(">>전화걸기" );
	}
	
	void receiveCall () {
		System.out.println("<<전화받기");
	}
	
	void sendSms (String message) {
		System.out.println("[메시지전송]" + message);
	}    //void 값들은 단순히 실행만하면 됨
	
	String receiveSms (String message) {
		System.out.println("[메시지수신]" + message);
		return message;
	}
	
	void view () {
		System.out.println("모델명 : " + name);
		System.out.println("타입 : " + type);
		System.out.println("가로크기 : " + hsize);
		System.out.println("세로크기 : " + vsize);
		System.out.println("LCD유무 : " + hasLCD);
	}

	@Override
	public String toString() {
		return "Phone [name=" + name + ", type=" + type + ", hsize=" + hsize + ", vsize=" + vsize + ", hasLCD=" + hasLCD
				+ "]";
	}

}

PhoneMain

public class PhoneMain {

	public static void main(String[] args) {
		Phone p1 = new Phone();
		System.out.println("p1 : " + p1);
		System.out.println("------");
		p1.call();
		p1.receiveCall();
		p1.sendSms("안녕하세요~");
		
		p1.receiveSms("반갑습니다~");  //리턴값 받았으나 버려짐
		
		String receiveMsg = p1.receiveSms("hi~");
		System.out.println("받은메시지 : " + receiveMsg);
		System.out.println("------");
		
		p1.view();
		p1.hsize = 10;
		p1.vsize = 20;
		System.out.println("------");
		p1.view();
		
		System.out.println("=== p2 ===");
		Phone p2 = new Phone("갤럭시22", "스마트폰");
		System.out.println("p2 : " + p2);
		p2.hsize = 12;
		p2.vsize = 22;
		p2.hasLCD = true;
		p2.view();
		
		System.out.println("=== p3 ===");
		Phone p3 = new Phone("아이폰", "스마트폰", true);
		System.out.println("p3 : " + p3);
		p3.hsize = 30;
		p3.vsize = 25;
		p3.view();
        
}

배열(Array)

  • 배열은 반복문과 같이 사용된다

ArrayEx1

package com.mystudy.array;

import java.util.Arrays;

public class ArrayEx1 {

	public static void main(String[] args) {
		// 배열(Array)
		// 배열의 선언 : 자료형[] 변수명
		// 변수에 값 저장 : 배열변수명[인덱스번호] = 값;
		/* 배열의 선언 및 생성
		1.자료형[] 변수명 = new 자료형[갯수];
		  자료형 변수명[] = new 자료형[갯수];
		2.자료형[] 변수명 = new 자료형[] {값1, 값2, ..., 값n};
		3.자료형[] 변수명 = {값1, 값2, ..., 값n}; //n개 저장공간 생성
		****************************************************/
		//1.자료형[] 변수명 = new 자료형[갯수];
		int[] arr = new int[6];
		System.out.println("arr : " + arr);
		System.out.println("arr 데이터확인 : " + Arrays.toString(arr));
		arr[0] = 100;   //new int[5] -> 쓸수있는 인덱스값은 0~4
		System.out.println("arr[0] : " + arr[0]);   //0번 인덱스
		arr[1] = 200;   //두번째 데이터
		arr[2] = 300;
		arr[3] = 400;
		arr[4] = 500;
		arr[5] = 600;
		
		//arr[6] = 600;   //컴파일(문법체크)오류가 없지만 실행하게 된다면 java.lang.ArrayIndexOutOfBoundsException: 6 오류 발생
		//System.out.println("arr[6] : " +arr[6]);  //마찬가지로 오류 발생(6이상의 숫자부터), 인덱스의 범위를 초과
		System.out.println("arr 데이터확인 : " + Arrays.toString(arr));
		
		System.out.println("=== 배열데이터 화면 출력 ===");
		for (int i = 0; i < arr.length; i++) {
			System.out.println("arr[" + i + "] : " + arr[i]);
		}
	
		System.out.println("===============");
		//배열 데이터 합 구하기
		int sum = 0;
		sum = arr[0] + arr[1] + arr[2] + arr[3] + arr[4] + arr[5];  //sum에 합한 값이 저장, 하나씩 쓰는것은 비효율적 -> 반복문 필요
		System.out.println("sum : " + sum);   //sum의 값 확인
		System.out.println("---------------");
		
		//반복문 사용하여 배열값 합계 구하기
		sum = 0; //sum값 초기화
		for (int i = 0; i < 6; i++) {
			sum = sum + arr[i]; //sum += arr[index];
		}
		System.out.println("sum : " + sum);
		
		System.out.println("===============");
		//배열의 크기 값 확인(조회)
		System.out.println("arr.length : " + arr.length);
		for (int i = 0; i < arr.length; i++) {
			System.out.println("arr[" + i + "] : " + arr[i]);
		}
	
		//======================================
		System.out.println("---------------");
		System.out.println("=== 배열 선언형태 2번 ===");
		//2.자료형[] 변수명 = new 자료형[] {값1, 값2, ..., 값n};
		int[] arr2 = new int[] {100, 101, 102, 103, 104};
		System.out.println("arr2.length : " + arr2.length);
		for (int i = 0; i < arr2.length; i++) {
			System.out.println(arr2[i]);
		}
		
		
		System.out.println("=== 배열 선언형태 3번 ===");
		//3.자료형[] 변수명 = {값1, 값2, ..., 값n}; //n개 저장공간 생성
		int[] arr3 = {10, 11, 12, 13, 14};
		System.out.println("arr3.length : " + arr3.length);
		for (int i = 0; i < arr3.length; i++) {
			System.out.println(arr3[i]);
		}
		System.out.println("======================");
		
		System.out.println("=== 영어 알파벳 출력(A~Z) ===");
	    char[] ch = new char[26];  //배열 선언 및 크기 지정
	    ch[0] = 'A' + 0;
	    ch[1] = 'A' + 1;
	    ch[2] = 'A' + 2;
	    ch[3] = 'A' + 3;
	    
	    //배열에 값 저장
	    for (int i = 0; i < ch.length; i++) {
	    	ch[i] = (char)('A' + i);
	    }
	    
	    //배열 값 출력 확인
	    for (int i = 0; i < ch.length; i++) {
	    	System.out.println(i + " : " + ch[i]);
	    }
	    System.out.println("======================");
	    
	    
	}

}

ArrayEx2

public class ArrayEx2 {

	public static void main(String[] args) {
		// 1.배열 선언 int 값 10개를 저장할 수 있는 배열(nums) 만들기
		// 2.1~10까지의 수를 배열에 저장(반복문 사용)
		// 3.배열에 저장된 데이터 화면 출력
		// 출력형태 : 변수명[인덱스번호] : 값
		//-------------------------------
		int nums[] = new int [10];
		
		for (int i = 0; i < nums.length; i++) {
			nums[i] = i + 1;
		}
		
		for (int i = 0; i < nums.length; i++) {
			System.out.println("nums[" + i + "] : " + nums[i]);
		}
		
		System.out.println("============================");
		// 1~10까지의 수 중에서 홀수합 구하기(배열값 사용)
		// 배열에 저장된 값 중에서 홀수값만 더해서 합계 구하기
		//-------------------------
		
		int oddSum = 0;
		for (int i = 0; i < nums.length; i++) {
			if (nums[i] % 2 != 0) {
			    oddSum += nums[i];
			}
		}		
		System.out.println("홀수합계 : " + oddSum);
		
		
		
		System.out.println("============================");
		// 배열에 저장된 1~10까지의 숫자 합게 구하기
		// 짝수는 짝수끼리 합산(evenSum)
		// 홀수는 홀수끼리 합산(oddSum)
		// 결과 출력예)
		// 짝수합계 : ??
		// 홀수합계 : ??
		//-------------------------
		int evenSum = 0;   //초기값 설정: 짝수
		oddSum = 0;        //초기값 설정: 홀수
		for (int i = 0; i < nums.length; i++) {
			if (nums[i] % 2 != 0) {
			    oddSum += nums[i];
			} else {
				evenSum += nums[i];
			}
		}		
		System.out.println("짝수합계 : " + evenSum);
		System.out.println("홀수합계 : " + oddSum);
		
	}

}

짝수합계 : 30
홀수합계 : 25

//==========================
		/*
		*
	    **
	    ***
	    ****
        *****		
	    -----------------*/
		char[] ch = {'*', '*', '*', '*', '*'};
		
		for (int i = 0; i < ch.length; i++) {
			for (int k = 0; k <= i; k++) {
				System.out.print(ch[k]);
			} 
			System.out.println();
		} 
		System.out.println("------------");
		
		char[] ch2 = {'!', '@', '#', '$', '%'};
		for (int line = 0; line <= 5; line++) {
			for (int i = 0; i < line; i++) {
				System.out.print(ch2[i]);
			}
			System.out.println();
		}
*
**
***
****
*****
------------
!
!@
!@#
!@#$
!@#$%

머리아프다....

0개의 댓글