본문 바로가기

프로그래밍

자바 clone() 메서드 - Do it ! 자바프로그래밍기초 clone() 메서드는 객체 원본을 유지해 놓고 복사본을 사용한다거나, 기본 틀의 복사본을 사용해 동일한 인스턴스를 만들어 복잡한 생성 과정을 간단히 하려는 경우에 사용한다. protected Object clone(); clone() 메서드는 위와 같이 Object 클래스에 선언되어 있으며 객체를 복사해 또 다른 객체를 반환해준다. package object; class Point { int x; int y; Point(int x, int y) { this.x = x; this.y = y; } public String toString() { return "x = " + x + ", y = " + y; } } class Circle implements Cloneable { // 객체를 복제해도 된다는 의.. 더보기
자바 추상클래스 - Do it! 자바프로그래밍기초 '추상클래스'란 '추상메서드'를 포함하는 클래스입니다. 그럼 추상메서드가 뭐냐? 추상메서드는 구현 코드(함수 몸체)가 없는 메서드입니다. 중괄호 {}로 감싼 부분을 함수의 구현부라고 하고, 이 부분이 없는 함수를 추상함수라고 합니다. 그리고 이 추상함수를 포함하는 클래스를 추상클래스라고 합니다. public abstract int add(int x, int y); 위 코드처럼 선언만 하며, abstract 예약어를 사용합니다. public abstract class Computer { public abstract void display(); public abstract void typing(); public void turnOn() { System.out.println("전원을 켭니다."); } publ.. 더보기
자바 ArrayList - Do it! 자바프로그래밍기초 자바는 객체 배열을 좀 더 쉽게 사용할 수 있도록 객체 배열 클래스 ArrayList를 제공한다. ArrayList 클래스는 객체 배열을 관리할 수 있는 멤버 변수와 메서드를 제공하는데 사용법을 알아두면 편리하게 사용할 수 있다. 주요 메서드로는 boolean add(E e) : 요소 하나를 배열에 추가한다. E는 요소의 자료형을 의미 int size() : 배열에 추가된 요소 전체 개수를 반환 E get(int index) : 배열의 index 위치에 있는 요소 값을 반환한다. E remove(int index) : 배열의 index 위치에 있는 요소 값을 제거하고 그 값을 반환한다. boolean isEmpty() : 배열이 비어있는지 확인한다. ArrayList는 java.util 패키지에 구현되어.. 더보기
자바 배열 복사, arraycopy - Do it! 자바프로그래밍기초 배열 복사는 기존 배열과 자료형 및 배열 크기가 똑같은 배열을 새로 만들거나 배열의 모든 요소에 자료가 꽉차서 더 큰 배열을 만들어줄 때 사용한다. 배열을 복사하는 방법은 두 가지가 있다. 1. 기존 배열과 배열 길이가 같거나 더 긴 배열을 만들고 for문을 사용하여 각 요소 값을 반복해서 복사하는 방법 2. System.arraycopy(src, srcPos, dest, destPos, length) 메서드를 사용하는 방법이다. src : 복사할 배열 이름 srcPos : 복사할 배열의 첫번째 위치 dest : 복사해서 붙여 넣을 대상 배열 이름 destPos : 복사해서 대상 배열에 붙여 넣기를 시작할 첫 번째 위치 length : src 에서 dest로 자료를 복사할 요소 개수 package arr.. 더보기
자바 static 변수, 클래스 변수- Do it! 자바프로그래밍기초 static 변수란 다른 용어로 '정적 변수'라고도 한다. 다른 멤버 변수처럼 클래스 내부에 선언하고 자료형 앞에 static 예약어를 사용한다. static 변수는 클래스 내부에 선언하지만, 다른 멤버 변수처럼 인스턴스가 생성될 때마다 새로 생성되는 변수가 아니다. 프로그램이 실행되어 메모리에 올라갔을 때 딱 한번 메모리 공간이 할당된다. 그리고 그 값은 모든 인스턴스가 공유한다. 다시 말하면 static으로 선언한 변수는 인스턴스 생성과 상관없이 먼저 생성되고 그 값을 모든 인스턴스가 공유하게 된다. 이런 이유로 클래스에 기반한 변수라고 해서 '클래스변수'라고도 한다. public class Student { public static int serialNum = 1000; //static 변수는 인스.. 더보기
자바 접근제어자, public, private - Do it ! 자바프로그래밍기초 객체 지향 프로그래밍에서는 예약어를 사용해 클래스 내부의 변수나 메서드, 생성자에 대한 접근 권한을 지정할 수 있다. 이러한 예약어를 접근 제어자라고 한다. public이라고 선언한 변수나 메서드는 외부 클래스에서 접근이 가능하며 외부 클래스가 사용할 수 있다는 뜻 private으로 선언한 변수나 메서드는 외부 클래스에서 사용할 수 없다. public class Student { int studentID; private String studentName; int grade; String address; public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.stude.. 더보기
자바 생성자, 생성자 오버로딩, 참조 자료형 - Do it ! 자바프로그래밍기초 public class Person { String name; float height; float weight; } public class PersonTest { public class void main(String[ ] args) { Person personLee = new Person(); } }​ PersonTest 클래스에서 클래스를 생성할 때 사용하는 Person()같은 함수를 생성자라고 한다. 클래스의 멤버 변수는 메서드에 의해 값이 변경될 수도 있지만, 처음 클래스를 생성할 때 값을 정해야 하는 경우도 있다. 생성자가 하는 일은 클래스를 처음 만들 때 멤버 변수나 상수를 초기화하는 것이다. 위의 Person 클래스를 보면 생성자가 따로 없지만 new Person()을 사용해서 객체를 만들 수.. 더보기
자바 class, 함수, method, - Do it 자바프로그래밍기초 순서대로 일어나는 일을 시간순으로 프로그래밍하는 것을 절차 지향 프로그래밍이라고 한다. 반면에 객체 지향 프로그래밍이란 객체를 정의하고 객체 간 협력을 프로그래밍하는 것이다. 객체 지향 프로그램은 클래스를 기반으로 프로그래밍하는데, 클래스는 객체의 속성과 기능을 코드로 구현한 것이다. 클래스의 속성을 '멤버 변수'라고 하는데, 예를 들어 Student 객체가 가지는 속성(멤버 변수)는 학번, 이름, 학년, 사는 곳 등이 있을 것이다. public class Student { int studentID; String studentName; int grade; String address; } 클래스를 만들 떄는 class 예약어를 사용하고 클래스 이름은 Student로 정했다. { } 안에는 클래스 내용을 구.. 더보기