익명 클래스(Anonymous class)
2021. 9. 3. 11:25
JAVA
익명 클래스 익명 클래스(anonymous class)란 다른 내부 클래스와 달리 이름을 가지지 않는 클래스를 의미한다. 익명 클래스는 클래스의 선언과 동시에 객체를 생성하므로, 단 하나의 객체만을 생성하는 일회용 클래스이다. 따라서 생성자를 선언할 수도 없으며, 오로지 단 하나의 클래스나 단 하나의 인터페이스를 상속받거나 구현할 수 있을 뿐이다. 이러한 익명 클래스는 매우 제한적인 용도에 사용되며, 구현해야 하는 메소드가 매우 적은 클래스를 구현할 때 주로 사용된다. 다음 코드는 자바의 윈도우 프로그래밍을 할 때 사용되는 AWT코드의 일부이다. 익명 클래스를 사용하지 않은 경우 import java.awt.*; import java.awt.event.*; public class AWT { public ..
업 캐스팅(Up Casting)
2021. 8. 31. 11:11
JAVA
캐스팅(Casting)이란? 캐스팅이란 형변환이라고도 하며 타입을 변환하는 것을 말한다. 자바의 상속관계에 있는 부모와 자식클래스 간에는 서로 형변환이 가능하다. 부모 클래스인 상속 관계의 상위 클래스를 수퍼 클래스, 그리고 자식 클래스인 하위 클래스를 서브 클래스라고 정의한다. 업캐스팅(Up Casting)이란? 업 캐스팅이란, 자식 객체를 부모의 타입으로 해석하는 것이다. 예를 들어 아래와 같은 상속 관계가 있을 때, class Animal { ... } class Cat extends Animal { ... } class Dog extends Animal { ... } class Horse extends Animal { ... } Cat의 인스턴스(객체)는, Animal로 해석 될 수 있다. // ..
배열 정렬하기(오름차순, 내림차순) Arrays.sort( )
2021. 8. 30. 11:53
JAVA
자바의 여러 API 중 정렬에 관련된 메소드가 있다. java.util.Arrays 클래스의 sort() 메서드를 사용하시면 따로 정렬 로직을 짜지 않아도 한번의 메소드 호출로 간편하게 배열이나 리스트를 정렬할 수 있다. Arrays클래스는 배열의 복사, 항목 정렬, 검색과 같은 배열을 조작 기능을 가지고 있다. 배열의 오름차순 정렬 Arrays.sort()메서드의 매개값으로 기본 타입 배열이나 String배열을 지정해주면 자동으로 오름차순 정렬이 되는 것을 볼 수 있다. int[] arr = {1, 26, 17, 25, 99, 44, 303}; Arrays.sort(arr); 여기서 배열이 제대로 정렬되었는지를 확인하기 위해 기본적인 toStirng 메소드를 써주면 원하는 결과값이 아닌 D@46a49e..
JAVA API 를 이용한 주사위 통계
2021. 8. 26. 14:16
JAVA
우선 랜덤으로 주사위의 숫자를 만들어주는 클래스를 만들어보자 우리는 주사위 A와 B의 숫자를 다른 2가지 방법으로 뽑아낼 것이다. 우선 이를 위해 자바 API를 사용해야 하는데 자바 API란 무엇일까? 자바 API란, 프로그램을 만들기 위한 도구이다. 이를 사용하면 더 편리한 프로그래밍이 가능하다. 자바 API는 패키지로 제공된다. 첫 번째 방법은 📌 java.lang.Math를 이용한 방법 Math클래스의 random() 메소드는 0.0 이상 1.0 미만의 범위에서 임의의 double형 값을 하나 생성하여 반환한다. 이 메소드는 내부적으로 java.util 패키지의 Random 클래스를 사용한 의사 난수 발생기(pseudorandom-number generator)를 사용하여 임의의 수를 생성하게 된다..
래퍼런스와 스태틱(static)
2021. 8. 21. 12:33
JAVA
래퍼런스 래퍼런스란 자바 타입의 큰 범주 즉 카테고리이다. 자바에서 변수의 타입은 크게 두 가지로 나뉜다 래퍼런스형 (reference type) 기본형 (primitives type) 여기서 래퍼런스형이란 클래스 타입, 사용자 정의형 타입이라고도 불린다. 이는 객체를 변수에 연결하기 위해 사용된다. 엄밀히 말하면 객체의 주소 정보를 담고 있다. // 객체 생성 후, 그 객체의 주소를 marine1 변수에 저장. 그 객체를 Marine 타입 으로 해석. Marine marine1 = new Marine("레이너", 80); // marine1 주소의 객체이 접근하여, stimpack() 동작을 실행 marine1.stimpack(); 여기서 래퍼런스 변수와 기본형 변수의 차이를 알 수 있는데 래퍼런스 변..