목록Development/Java (43)
컴공생의 다이어리
ArrayList 기존의 배열 선언과 사용 방식은 배열의 길이를 정하고 요소의 개수가 배열의 길이보다 커지면 배열을 재할당하고 복사해야 했다. 배열의 요소를 추가하거나 삭제하면 다른 요소들의 이동에 대한 구현을 해야했다. 하지만 java.util 패키지에서 제공되는 ArrayList를 사용하면 객체 배열을 좀 더 효율적으로 관리할 수 있다. ArrayList의 사용법 ▶ 생성 ArrayList를 사용하려면 아래와 같이 먼저 ArrayList 객체를 만들어야 한다. ArrayList arr = new ArrayList(); ▶ 추가 : boolean add(E e) 요소 하나를 배열에 추가하려면 add 메소드를 사용한다. add는 단순히 배열 뒤에 데이터를 더하기 때문에 빠르다. arr.add(10); a..
변수의 유효 범위와 메모리 변수가 유효한 범위와 생성되고 소멸되는 life cycle은 변수의 종류마다 다르다. 또한 변수마다 사용되는 메모리도 다르다. 변수 유형 선언 위치 사용 범위 메모리 생성과 소멸 지역 변수 (로컬 변수) 함수 내부에 선언 함수 내부에서만 사용 스택 함수가 호출될 때 생성되고 함수가 끝나면 소멸 멤버 변수 (인스턴스 변수) 클래스 멤버 변수로 선언 클래스 내부에서 사용하고 private이 아니면 참조 변수로 다른 클래스에서 사용 가능 힙 인스턴스가 생성될 때 힙에 생성되고, garbage 컬렉터가 메모리를 수거할 때 소멸됨 static 변수 (클래스 변수) static 예약어를 사용하여 클래스 내부에 선언 클래스 내부에서 사용하고 private이 아니면 클래스 이름으로 다른 클래..
static 변수 만일 여러 인스턴스가 공유하는 기준 값이 필요한 경우 공통적으로 사용할 수 있는 변수가 필요하다. 이럴때, static 변수를 사용하면 된다. static 변수는 인스턴스가 생성될 때 만들어지는 변수가 아니라, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당된다. 따라서 인스턴스 생성과 상관 없이 사용 가능하므로 클래스 이름으로 직접 참조 가능하다. public class Student{ public static int studentCode = 1000;// 인스턴스들이 공유하는 변수 private String name; private int score; public void setName(String name){ this.name = name; } public void setScor..
접근 제어 지시자(access modifier) 클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드 종류 : private, default, protected, public private : 같은 클래스 내부에서만 접근 가능(외부 클래스, 상속 관계의 클래스에서도 접근 불가) default : 접근 제어 지시자를 선언하지 않은 경우, 동일 패키지 내에서만 접근 가능(상속 관계라도 패키지가 다르면 접근 불가) proteced : 동일 패키지나 상속관계의 클래스에서만 접근 가능하고 그 외 외부에서는 접근 불가 public : 어디서든 접근 가능한 인스턴수 변수 및 메소드 public > default > protected > public 지시자 클래스 내부 동일 ..
오버로딩(Overloading)과 오버라이딩(Overriding) ▶ 오버로딩(Overloading) 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의하는 것을 오버로딩이라고 한다. 아래는 생성자 오버로딩한 것이다. public class Info{ public String id; public String pw; public String name; public Info(){} public Info(String id, String pw){ this.id = id; this.pw = pw; } public Info(String name){ this.name = name; } } ▶ 오버라이딩(Overriding) ..
클래스(class), 객체(object), 인스턴스(instance) 차이 클래스란 객체를 정의하고 만들어 내기 위한 설계도 혹은 틀을 말한다. 클래스 안에는 객체를 만들어내기 위해 필요한 변수와 메서드들이 존재한다. 객체란 클래스에 선언된 모양 그대로 생성된 실체를 말하며 '클래스의 인스턴스'라고 부른다. 인스턴스란 클래스를 통해서 구현해야할 대상(객체)이 실제로 구현된 구체적인 실체를 말한다. 예를들어 붕어빵을 만든다고 상황을 가정해보자. 여기서 클래스는 붕어빵을 만들기 위한 틀이 되고 객체는 붕어빵이다. 그리고 인스턴스는 붕어빵 틀로 찍어낸 각각의 붕어빵이다. 팥붕어빵과 슈크림붕어빵은 같은 타입의 객체이지만, 인스턴스 관점으로 보았을 때는 다르다. https://victor8481.tistory.c..
클래스(class)란? 클래스는 유사한 특징을 지닌 객체들의 속성과 동작을 묶어 놓은 집합체이다. 따라서 클래스는 객체의 청사진(blueprint)이다. 예를 들어 학생이라는 클래스를 만든다면 속성으로 이름, 학번, 전공, 학년을 속성으로 둘 수 있다. 아래는 지금 말한 학생에 대한 속성을 클래스로 만든 것이다. public class Student{ String name;//이름 int studentNumber;//학번 String major;//전공 int grade;//학년 } 객체지향 프로그래밍을 할 때 - 객체를 정의 - 각 객체의 속성을 멤버 변수로, 역할을 메서드로 구현 - 각 객체간의 협력을 구현 https://m.blog.naver.com/highkrs/220201921836 [Java ..
객체(Obejct)란? 자바는 객체지향 프로그래밍(OOP; Object Oriented Programming) 언어 중 대표적인 언어이다. 객체지향 프로그래밍이라는 단어에서 객체란 무엇일까? 객체(Object)란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신과 다른 것을 식별가능한 것을 말한다. 예를 들어 물리적으로 존재하는 학생, 회원 등과 추상적인 생산, 주문, 배송 등이 모두 객체가 될 수 있다. 객체의 구성 객체는 속성과 동작으로 구성되어 있다. 사람을 예로 들어보면 사람의 속성으로는 이름, 나이 등이 있다. 그리고 동작으로는 달리다, 공부하다 등이 있다. 자바에서는 이러한 객체의 속성을 필드(field), 동작을 메소드(method)라고 한다. https://devuna.tis..

자바(Java)의 반복문 - for문 이전 게시물에서 자바의 반복문 종류로 while, do-while에 대해 이야기했다. 이번에는 for문에 대해 말해보고자 한다. for문의 구조는 아래와 같으며 수행 순서는 [초기화식→조건식→수행문→증감식]순으로 진행된다. for(초기화식;조건식;증감식){ 수행문; } 아래는 1부터 10까지의 합을 구하는 과정을 for문으로 코드를 작성한 것이다. public class ForTest{ public static void main(String[] args){ int sum = 0; for(int i=1;i
자바(Java)의 반복문 반복문은 주어진 조건에 맞는 동안(true) 지정된 수행문을 반복적으로 수행하는 제어문을 말한다. 조건이 맞지 않으면 반복하던 수행을 멈춘다. 조건은 주로 반복 횟수나 값의 비교 결과에 따라 true, false가 판단된다. while문 수행문을 수행하기 전 조건을 체크하고 그 조건의 결과가 true인 동안 반복 수행한다. 아래는 자바에서의 while문 구조이다. 만일 while문으로 무한 반복 수행을 하고 싶다면 조건식 자리에 true를 넣으면 된다. while(조건식){ 수행문1; } 수행문2; 아래는 1부터 10까지의 합을 구하는 과정을 while문으로 코드를 작성한 것이다. public class WhileTest{ public static void main(String[..