본문 바로가기
개발 공부 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)

 

[필드]

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

 

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

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

반응형

댓글