본문 바로가기
개발 공부 Today I Learned

[국비 9일차 TIL] JAVA 배열, 변수, 객체 지향

by 개발자신입 2023. 12. 1.
반응형

[배열]

1. 값 목록으로 배열 생성

타입[] 변수 = { 값0, 값1, 값2, 값3, ... };

String[] names = {"가가가", "나나나", "다다다"};

 

 

변수 = new 타입[] { 0, 값1, 값2, 값3, ...};

String[] names = null;
names = new String[] {"가가가", "나나나", "다다다"};

 

 

int[] score = {82,90,78,86};
	System.out.println("score[0] : " + score[0]);
	System.out.println("score[1] : " + score[1]);
	System.out.println("score[2] : " + score[2]);
	System.out.println("score[3] : " + score[3]);

	int sum = 0;

	for(int i=0; i<4; i++) {
		sum += score[i];
	}
    
	System.out.println("총합 : " + sum);
	double avg = (double) sum / 4;
	System.out.println("평균 : " + avg);

}

 


public class ScoreCalculator {

    public static void main(String[] args) {
    
    	int[] scores;
        scores = new int[] { 83,90,87 };

		int sum1 = 0;
		
        for(int i=0; i<3; i++) {
			sum1 += scores[i];                    
		}
		
        System.out.println("총합 : " + sum1);

		int sum2 = add( new int[] { 83,90,87});

		System.out.println("총합 : " + sum2);
		System.out.println();

	}

     public static int add(int[] scores) {
		int sum = 0;

		for(int i=0; i<3; i++) {
			sum += scores[i];
		}
		return sum;

 


  2. new 연산자로 배열 생성

 

타입[] 변수 = new 타입[길이];

 

int[] intArray = new int[5];

String[] names = new String[30];

 

 

[배열 길이]

 

배열 변수.length;

public static void main(String[] args) {
	int[] scores = { 83,90,87 };

	int sum = 0;

	for(int i = 0; i < scores.length; i++) {
		sum += scores[i];

	}
	System.out.println("총합 : " + sum);
	System.out.println("평균 : " + avg);

}

 

[객체 참조 배열]

 

- String[] 배열은 String 객체를 참조

- equals() 메소드 사용해야 함.

 

[배열 복사]

 - 배열은 한 번 생성하면 크기 변경 불가

- 더 많은 저장 공간이 필요하다면 더 큰 배열을 새로 만들고 이전 배열로부터 항목 값들을 복사해야 함

 

  1. for문 사용
  2. System.arraycopy(arr1, 0, arr2, 0, arr1.length);

 

[향상된 for]

- for문의 괄호에는 배열에서 꺼낸 항목을 저장할 변수 선언과 콜론(:) 그리고 배열을 나란히 작성

 

 

[열거 타입]

- 열거 타입 (enum) : 몇 가지로 제한된 상수를 가지는 타입

 

ex) 월,화,수,목,금,토,일 = week

 

- 열거 타입 선언

첫 글자 대문자.java 생성 필요

 

public enum Week {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY}

 

= Week 열거 타입 이름 / 요일들은 열거 상수

 

public enum Week {
		MONDAY,
		TUESDAY,
		WEDNESDAY,
		THURSDAY,
		FRIDAY,
		SATURDAY,
		SUNDAY
	}

 

- 열거타입 변수;

 

Week today;

Week reservationDAy;

 

Week today = Week.SUNDAY;

 

Week birthday = null;

 

 

- Calendar now = Calendar.getInstance();

 

int year = now.get(Calendar.YEAR);

int month = now.get(Calendar.MONTH) + 1;

int day = now.get(Calendar.DAY_OF_MONTH);

int week = now.get(Calendar.DAY_OF_WEEK);

int hour = now.get(Calendar.HOUR);

int minute = now.get(Calendar.MINUTE);

int second = now.get(Calendar.SECOND);

  

 

import java.util.Calendar;

enum Week {

    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY

}

 

public class WeekExample {
	public static void main(String[] args) {
		Week today = null; // Enum variable declaration
		
        Calendar cal = Calendar.getInstance();
		int week = cal.get(Calendar.DAY_OF_WEEK); // Returns a number representing the day of the week

		switch (week) {
			case 1:
				today = Week.SUNDAY;
				break;
			case 2:
				today = Week.MONDAY;
				break;
			case 3:
				today = Week.TUESDAY;
				break;
			case 4:
				today = Week.WEDNESDAY;
				break;
			case 5:
				today = Week.THURSDAY;
				break;
			case 6:
				today = Week.FRIDAY;
				break;
			case 7:
				today = Week.SATURDAY;
				break;
		}

		System.out.println("Today is : " + today);

		if (today == Week.SUNDAY) {
			System.out.println("It's a day off!");
		} else {
			System.out.println("It's a study day!");

        }

    }

}

 

[객체 지향 프로그래밍]

 

객체를 하나씩 조립해서 완성된 프로그램을 만드는 기법 (OOP : Object-Oriented Programming)

 

 

- 객체 지향 프로그래밍 개발 단계

  • 1단계 : 클래스 설계
  • 2단계 : 설계된 클래스를 가지고 사용할 객체를 생성
  • 3단계 : 생성된 개체 이용

 

[클래스 선언]

 - 식별자 작성 규칙

  • 하나 이상의 문자로 이루어져 있어야 함.
  • 첫 글자에는 숫자가 올 수 없음.
  • '$', '_' 외의 특수 문자는 사용 불가.
  • 자바 키워드 사용 불가.
  • 보통 한글보다는 영어를 사용함.
  • 영어 대소문자 구분.

 

[클래스의 구성 멤버]

  • 필드 (Field)
  • 생성자 (Constructor)
  • 메소드 (Method)

 

[필드]

- 객체의 고유 데이터, 부품 객체, 상태 정보를 저장하는 곳

 

- 필드 선언 : 클래스 중괄호{} 블록 어디서든 선언하나, 생성자와 메소드 내부에서는 선언 불가.

- 필드 사용 : 클래스 내부의 생성자와 메소드에서 바로 사용이 가능하나, 클래스 외부에서 사용할 경우에는 반드시 객체를 생성하고 참조 변수를 통해 사용해야 함.

반응형

댓글