전체 글 97

15. 필드(Filed)-1. 필드와 변수

객체 지향 프로그램의 '변수'필드(속성)란?객체의 지속적인 상태를 저장하는 '클래스 내부'의 변수메소드의 외부에 위치한다(분리)명시적으로 초기화하지 않으면 기본값으로 초기화됨 인스턴스(instance)변수클래스의 각 객체가 인스턴스에 속한 변수클래스 내부에서 선언되고 '객체가 생성될 때' 메모리에 할당됨각 인스턴스 마다 다른 값을 가질 수 있음 클래스(static, 정적) 변수클래스의 '모든 인스턴스에서 공유되는' 데이터 변수'static' 키워드를 사용하여 선언되는 변수해당 클래스로 생성되는 인스턴스가 '모두 동일한 값'을 가짐프로그램이 시작될 때 생성됨프로그램이 종료될 때 소멸함JVM의 'Method Area'라고 불리는 영역에 저장됨 지역 변수메소드가 실행되는 동안에만 존재하는 '일시적인' 변수메소..

java 2025.02.21

실습) 클래스

class Book { // 클래스 내부의 데이터(속성, 필드) String title; // 제목 String publisher; // 출판사 int pageNumber; // 페이지 수 // 클래스 내부의 동작 (행동, 메소드) void displayInfo() { System.out.println(title + " " + publisher); return; } // 사용자 정의 생성자 메소드 생략 시 클래스명과 동일하면서 '매개변수'가 없는 메소드가 생략된다 Book () {} Book (String title, String publisher, int pageNumber) { this.title = title; this.publisher = publisher; this.pageNumber..

java 2025.02.21

14. 객체(Object)-3. 클래스의 구조

클래스(Class)의 구조필드: 데이터를 표현하는 속성메소드: 데이터의 동작생성자: 데이터를 생성하는 역할 메소드란? 클래스의 행동(동작)클래스 내부에서 정의된 일종의 함수이며, 객체의 행동을 표현한다클래스에서 정의된 속성(필드)을 사용하여 작업을 수행한다필드값을 변경하거나 반환가능하다 메소드의 구조반환타입 메소드명 (매개변수...){ 메소드의 동작을 정의 return 반환값}이때 'return 반환값'이 없는 경우 반환타입에 무조건 void를 작성한다 클래스의 생성자클래스의 이름과 동일한 이름을 가지는 메소드이며, UpperCamelCase를 사용한다클래스가 생성될 때 자동으로 호출된다클래스 내부의 필드의 값을 초기화할때 주로 사용한다반환값을 가지지 않는다 예시class Car { // 클래..

java 2025.02.21

14. 객체(Object)-2. 클래스와 객체

객체 지향 프로그래밍-클래스, 객체 클래스(Class)의 정의객체를 만들기 위한 템플릿(틀)객체의 상태(속성)와 행동(메소드)을 정의데이터 기능의 구조를 정의하는 개념실제 데이터가 아니기 때문에 메모리에 저장되지 않음 클래스명을 작성할때는 UpperCamelCase를 사용한다 객체(Object)의 정의클래스에 정의된 속성과 메소드를 가지고 있는 실체(instance)클래스를 기반으로 생성클래스의 '인스턴스'메모리에 할당됨각 객체는 독립적인 상태와 행동을 가짐다른 객체와 상호작용 가능 인스턴스( instance )화클래스라는 템플릿으로 객체를 만드는 과정이때 만들어진 객체가 인스턴스라고 불림 클래스 정의 방법[접근제한자/접근제어자] class ClassName{ 클래스가 가지는 속성과 행동을 정의 속성(기..

java 2025.02.21

14. 객체(Object)-1. 객체 지향 프로그래밍

Java는 객체 지향 프로그래밍(OOP: Object-Oriented Programming) 언어객체란?데이터(속성)와 해당 데이터를 처리하는 기능(메소드)를 포함하는  프로그래밍의 기본 단위객체의 예시커피 자판기가 있으면,데이터(속성)는 커피의 종류, 커피의 가격, 커피의 재고 등등기능(메소드)은 커피를 제조, 재고를 관리, 가격을 설정 등등  객체 지향 프로그래밍의 주요 개념1. 클래스(Class)객체를 생성하기 위한 템플릿(틀). 데이터(속성)와 메소드(기능=행동)을 정의2. 객체(Object)클래스의 인스턴스. 실제로 메모리에 할당되어 동작하는 구체적인 엔티티엔티티란?1)데이터의 집합을 의미한다.2)저장되고, 관리되어야하는 데이터이다.3)개념, 장소, 사건 등을 가리킨다.4)유형 또는 무형의 대상..

java 2025.02.21

실습) 동적 배열 활용2

public static void main(String[] args) { /* 단어 퀴즈 맞추기 게임 동적 배열에 단어 5개를 삽입 무작위의 수를 생성(0~4)하여 단어 5개 중에서 1가지를 선택 사용자로부터 입력받은 값이 무작위로 선택된 단어와 일치할 경우 게임 종료 정답을 맞출때까지 무한 반복 "종료" 입력시 프로그램 종료 */ ArrayList items = new ArrayList(); items.add("커피"); items.add("볼펜"); items.add("핸드폰"); items.add("포스트잇"); items.add("리모콘"); //난수에 관련된 기능의 집합 Random random = new Random();..

java 2025.02.20

13. 배열(Array)-5

동적 배열이란?자바의 배열은 한번 생성되면 크기 변경이 안됨(정적)따라서 크기 변경이 필요한 경우, 배열을 새로 생성하여 요소값을 복사함...이런 과정이 번거롭고 오래걸리기 때문에 동적 배열이 만들어짐 동적 배열(ArrayList) -> 자바의 동적 배열 구현체 동적 배열은 크기 제한 없이 요소를 추가하고 삭제 할 수 있음Java Collection Framework의 일부java.util.Arrays에서 제공됨 동적 배열(ArrayList)의 장점동적 크기, 유연성, 다양한 메소드의 제공 동적 배열(ArrayList)의 주의점기본 데이터 타입을 사용할 수 없음>>참조 데이터 타입만 사용 가능String (문자열), int > Integer, char > Charactor , 이외 기본 데이터타입은 첫 ..

java 2025.02.20

13. 배열(Array)-4

Arrays 클래스 활용하기Arrays 클래스는 배열을 조작하는데 유용한 기능들을 제공해주는 자바 내부 클래스이다정렬, 검색, 변환 등등을 할 수 있다 배열 정렬Arrays.sort(정렬할 배열): 배열을 오름차순으로 정렬한다 배열 변환Arrays.toString(변환할 배열): 배열의 전체 구조를 파악할수 있다.각 요소를 순회하여 문자열로 변환한다 >> [요소1, 요소2, 요소3, ...]의 형태 배열 내 검색Arrays.binarySearch(배열, 검색내용)이때 존재하면 존재한 요소의 인덱스 번호를 반환하고, 그렇지 않으면  검색내용을 음수로 반환한다주의) binarySearch()는 사용하기 전 배열을 반드시 정렬하고 사용해야 한다 배열 비교Arrays.equals(a배열, b배열)a와 b 배열을..

java 2025.02.20

13. 배열(Array)-2

배열 요소를 순회하기/ 배열 요소를 출력하기배열명[인덱스]를 일일이 늘어놓아서 출력을 하는것은 비효율/또는 불가능 이기 때문에반복문 (for)을 통해 출력한다int[] scores = {85, 100, 95, 70, 90};System.out.println("for 반복문으로 출력");int scoreLength = scores.length;for (int i = 0; i  이때 변형 for문(for-each문)을 이용해 더 간결하게 배열을 출력할 수 있다for (int score: scores) { //score 변수의 값은 for문의 반복에서 배열의 요소를 순차적으로 담는다 System.out.println(score);} 활용예시int total = 0;// 각 점수를 더하여 저장할 변수..

java 2025.02.20