클래스 설계 단계
·
Java 문법정리 (Array부터)
클래스 설계 단계클래스의 구성 멤버에는 필드, 생성자, 메서드가 있다. 필드 (Fields)필드는 클래스의 상태를 나타내는 변수다. 클래스의 인스턴스가 가지는 데이터를 저장하며, 클래스 내부에서 사용된다.필드는 인스턴스 변수, 클래스 변수(정적 변수)로 나뉜다. 종류:인스턴스 변수: 객체가 생성될 때마다 해당 객체에 대한 고유한 상태를 나타내는 변수입니다. 각 객체는 독립적인 값을 가진다.private String model; // 인스턴스 변수private int year; // 인스턴스 변수클래스 변수 (static): 클래스 자체에 속하며, 모든 객체가 공유하는 상태를 나타내는 변수입니다. static 키워드로 선언됩니다.private static int totalCars; // 클래스..
객체란?
·
Java 문법정리 (Array부터)
자바 객체 지향에 대해 설명하는데 앞서 객체에 대해 짚고 넘어갈려고 한다. 왜냐하면 자바는 객체 지향 프로그래밍 언어 중 하나로 모든것이 객체를 중심으로 돌아가기 때문! 형식적인 객체의 의미객체(Object)는 현실 세계의 사물이나 개념을 컴퓨터 프로그램으로 표현한 것.예를 들어 자동차, 사람, 동물, 등 큰 개념의 묶음. 클래스와 객체의 관계 클래스는 설계도겁나 간단히 설명하면클래스 -> 레고 블록을 만들기 위한 설명서이게 있어야 사진에 나오는 작품을 만들 수 있기에 매우 중요하다즉 클래스가 있어야 객체를 만들 수 있다. 코드로 보는 예자동차 객체를 만들기 위해 'Car라는 클래스를 정의 가능.Car 클래스는 자동차가 가져야 할 속성(예: 색상, 모델, 속도)과 행동(예: 가속, 멈추기)을 정의publ..
StringBuffer, StringBuilder
·
Java 문법정리 (Array부터)
StringBuffer란?StringBuffer는 가변(mutable) 문자열 클래스문자열을 수정해도 새로운 객체를 생성하지 않고, 기존 객체를 변경StringBuffer는 내부적으로 문자열을 변경할 때 배열을 사용하므로 성능이 좋음StringBuffer는 동기화(synchronized)되어 있어, 멀티스레드 환경에서도 안전하게 사용가능문자열 연결String을 사용하여 문자열을 여러 번 연결할 때String str = "";for (int i = 0; i  위 코드에서 매번 문자열을 연결할 때마다 새로운 String  객체가 생성된다. 하지만 이는 비 효율적이기에 StringBuffer를 사용한다. StringBuffer를 사용하여 문자열을 연결할 때StringBuffer buffer = new Stri..
Collection: List
·
Java 문법정리 (Array부터)
Array처럼 크기를 고정하여 생성하는 것을 정적 배열.ArrayList처럼 크기가 가변적으로 늘어나는 것을 동적 배열이라고 합니다. ArrayList 특징  동적 크기 조정: ArrayList는 내부적으로 배열을 사용하지만, 크기가 동적으로 조정된다. 요소를 추가할 때 배열의 크기가 부족하면, 새로운 배열을 할당하고 기존 요소를 복사하여 저장한다.빠른 요소 접근: 인덱스를 사용하여 요소에 접근하는 연산은 O(1) 시간복잡도를 가진다. 이는 ArrayList의 큰 장점 중 하나이다.요소 추가와 제거: 배열의 크기를 동적으로 조정해야 하는 경우를 제외하면, 끝에 요소를 추가하는 연산은 평균적으로 O(1) 시간복잡도를 가진다. 그러나 중간에 요소를 삽입하거나 제거하는 연산은 O(n) 시간복잡도를 가진다.비동..
Collection
·
Java 문법정리 (Array부터)
Collection이란? Collection 프레임워크는 데이터를 구조화하여 저장하고 조작할 수 있는 다양한 자료 구조와 알고리즘을 제공하는 시스템이다.이 프레임워크는 java.util 패키지에 포함되어 있으며, 여러 인터페이스와 클래스로 구성되어 있다. 이를 통해 일관된 방식으로 데이터를 관리할 수 있다. Collection 인터페이스는 가장 기본이 되는 인터페이스로, List, Set, Queue 등의 상위 인터페이스이다. 이 인터페이스에는 데이터를 추가, 삭제, 검색, 반복하는 데 사용되는 기본적인 메서드들이 정의되어 있다.add(E e): 컬렉션에 요소를 추가한다.remove(Object o): 특정 요소를 컬렉션에서 제거한다.iterator(): 컬렉션의 요소를 반복하는 Iterator를 반환한..
자바 배열
·
Java 문법정리 (Array부터)
배열  선언 ([])여러 개를 하나의 변수에 넣어놓고 들고 다니거나 하나씩 꺼내서 쓸 수 있다는 점에서 분류통의 개념과 비슷합니다.단, 하나의 배열형 변수에는 같은 타입의 변수만 담을 수 있습니다.한 번에 많은 양의 데이터를 다루거나 계산할 때 사용합니다.배열은 영어로 Array라고 부릅니다.선언 방법은 아래 2가지 방법이 있습니다.타입 [] 변수;ex. int[] intArray; 타입 변수[];ex. int intArray[];  int 와 같은 기본형 변수는 1개의 값만 변수에 저장할 수 있다면 int[] 와 같은 배열형 변수는 여러 개를 변수에 저장할 수 있습니다. // 배열 선언// 일반적인 선언방식int[] intArray; // 정수 배열long[] longArray;double[] d..
Overloading과 Overriding
·
Java 문법정리 (Array부터)
Overloading 오버로딩(Overloading)은 객체 지향 프로그래밍에서 같은 이름을 가진 여러 메서드를 정의할 수 있게 하는 기능입니다. 오버로딩을 사용하면 동일한 이름의 메서드가 다양한 인자 목록을 처리할 수 있게 됩니다. 이는 코드의 가독성과 유지보수성을 높이고, 유사한 작업을 하는 메서드를 그룹화하는 데 유용합니다.메서드 이름이 동일함: 오버로딩된 메서드들은 동일한 이름을 가지고 있습니다.매개변수 목록이 다름: 매개변수의 타입, 개수, 순서 중 하나 이상이 달라야 합니다.반환 타입은 상관없음: 반환 타입은 오버로딩의 기준이 되지 않으며, 동일할 수도 있고 다를 수도 있습니다.정적 다형성(Static Polymorphism): 오버로딩은 컴파일 시간에 결정되므로 정적 다형성이라고 불립니다.오..