본문 바로가기

JAVA/[JAVA] 바구니51

[JAVA] Object Class (3) toString() 객체의 문자정보를 리턴하는 메서드입니다. 객체의 문자 정보란 객체를 문자열로 표현한 값을 말합니다. Object클래스의 toString()는 패키 지명. 클래스명@해시 코드로 구성된 문자 정보를 리턴합니다 toString()는 자동 호출될 때가 있는데 System.out.println() 안에 매개변수로 객체를 넣었을 때 자동적으로 객체의 toString()을 호출합니다. 이걸 이용해 객체의 Class에서 toString()을 오버라이드 해서 의미 있는 값이 출력되도록 변경할 수 있습니다. Program의 클래스에서 toString()를 재정의해서 의미있는 값을 출력해 보겠습니다. package blog; import java.util.Date; public class Program .. 2020. 4. 9.
[Java] Object Class (2) 2. 해시 코드 hashCode() hashCode()는 객체의 해시 코드를 리턴하는데 객체의 해시 코드란 객체를 식별할 하나의 정수 값을 의미합니다 객체를 식별한다는 것은 해시 코드의 값이 동일한지 아닌지를 식별한다는 것입니다. hashCode()는 객체의 메모리 번지를 이용해서 hashCode를 만들어 리턴 값으로 넘겨줍니다. 모든 객체는 개별 hashCode가 존재하며 전부 다른 hashCode를 가지고 있습니다. 1.equals에서 동등에 대해 비교를 할 때 우리는 객체의 데이터만을 비교해 동등하다고 했습니다. 우리가 hashSet , hashTable, hashMap과 같은 컬렉션 라이브러리를 사용할 때에 두 객체가 동등한 객체인지 판단하는 경우가 존재합니다. 위 메서드는 객체를 비교할 때 먼저.. 2020. 4. 8.
[JAVA] Object Class Class Object java.lang.Object public class Object Class Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, including arrays, implement the methods of this class. -java API- Object 클래스는 클래스의 최상위 계층입니다. 모든 클래스는 상위 클래스로써 Object클래스를 상속받고. 배열을 포함한 모든 객체는 Object클래스의 메서드를 구현합니다. 모든 클래스는 다른 클래스를 상속받지 않는다면 암시적으로 java.lang.Object클래스를 상속합니다. Object의 클래스의 메서드는 모든.. 2020. 4. 8.
[JAVA] Java.lang 패키지 Java.lang 패키지는 자바 프로그램의 기본적인 클래스를 담고 있는 패키지입니다. 너무나도 자주 사용하기 때문에 포함된 클래스와 인터페이스는 Import 하지 않고 사용할 수 있습니다. 사용되는 주요 클래스입니다. 주요클래스 설명 System 표준 입력장치인 키보드와 표준 출력장치인 모니터에 입력/출력하기 위해서 사용되며 콘솔창에서 입력/출력이 이루어진다. Class 클래스를 메모리로 로딩할 때 사용한다. Object 자바 클래스의 최상위 클래스 이며 자바의 모든 클래스는 Object클래스를 상속받고 있습니다. 따라서 모든 자바 클래스는 object클래스의 메서드를 사용할 수 있습니다. String 문자열과 관련된 작업을 할때 사용할 수 있는 다양한 메소드가 포함되어 있으며 문자열을 저장할때도 사용됩.. 2020. 4. 8.
[JAVA] Anonymous Class . Anonymous Class 익명 클래스에 대해서 알아보자 부모님이 아들과 딸을 위해 밥을 만들어 준다고 예시를 들어 보겠습니다. 부모님이 요리한 요리를 먹기 위해 아들과 딸은 부모 클래스인 Parents를 상속을 받아야 합니다. 상속을 받기위해 우리는 아들과 딸이라는 이름에 클래스를 만들어서 각각 상속을 extends Parents라는 코드로 작성을 해줍니다. public class Parents { public void eat() { System.out.println("밥을 먹습니다"); } } public class Daughter extends Parents{ @Override public void eat() { System.out.println("딸이 밥을 먹습니다"); } } public .. 2020. 4. 8.
[JAVA] 유효범위 유효 범위 우리는 변수와 인스턴스 메서드 등을 사용하기 위해 각각 이름을 붙여줘서 사용하게 된다. 프로그램이 거대해진다면 여러 가지 이유로 이름들이 충돌해서 예기치 못한 오류가 발생할 수 있습니다. 이를 해결하기 위해 유효 범위라는 기능이 있습니다. 유효 범위 전역 변수와 지역변수 전역 변수는 클래스 전역에서 참조하거나 사용할 수 있는 변수입니다. package blog; public class Example { static int i = 10; // 클래스의 전역변수 i public static void main(String[] args) { Example ex = new Example(); System.out.printf("%d Class에 존재하는 i입니다 \n", i ); ex.a(); for (.. 2020. 4. 2.
[JAVA] SOLID 객체지향설계 로버트 C. 마틴 그는 객체지향 설계에 다섯 가지 기본원칙을 명명했는데 마이클 페더스가 기억술로 소개한 것이다. 프로그래머가 시간이 지나도 유지보수와 확장이 쉬운 시스템을 만들고자할 때 이원칙들을 함께 적용할 수 있다. 어떠한 기본원칙이 있을까? 1. SRP (Single responsibility principle) 단일 책임의 원칙 로버트 C.마틴은 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이여야한다. 한 클래스는 하나의 책임만을 가져야한다는 이야기이다. 책임은 무엇을뜻할까? 클래스가 만들어질때 하나의 목표를 가져야한다는 소리가 아닐까싶다. 하나의 클래스에 여러가지 기능과 여려가지 멤버를 가지게하지말고 클래스가 맡은 책임에대한 메소드와 멤버만을 가지도록 하여 관련된 책임에대한 것만 맡도록 하는 .. 2020. 3. 25.
[JAVA] Java Thread 1. 프로세스(PROCESS) 프로세스란 우리가 프로그래밍 언어로 절차를 작성해서 그 프로그램을 실행시켜서 동작하게 만들면 이것을 프로세스라고 합니다. 보통 프로세스는 하나의 프로그램 처리 경로를 가지고 있습니다. 이 경로는 직렬적인데 어떠한 일을 수행하는 것에 있어 프로그래머가 원하는 순서대로 작동을 합니다. 그러나 비동기 실행 병렬적으로 실행을 하고 싶을 때 자바에서 사용할 수 있는 것이 스레드 Thread입니다. 자바 스레드를 이용하면 여러 개의 처리 루틴을 가질 수 있습니다. 단순 반복의 코드를 실행할 때도 여러 개의 스레드를 만들어 분리시킨 뒤 결과를 받아 데이터를 합치게 되면 시간을 절약할 수 있습니다. 자바 쓰레드를 만들어서 구동하는 대표적인 방법은 Thread 클래스를 상속받는 것입니다. .. 2020. 3. 12.
JAVA GUI 1. JAVA GUI 그래픽을 그리기위한 환경 GUI환경은 다이얼로그 혹은 JFrame 같은 윈도우 창이 있어야 하며, 그 윈도우 창에 그래픽이 그려진다. 자바 GUI는 JAVA에서 AWT, Swing으로 나누어 진다. - Java.awt 패키지의 클래스를 이용 awt는 해당 운영체제의 특징을 따라 화면 구성을 하게되며 운영체제에 따라 느낌이 다르다 만들기가 쉬우며 대신 느리고 무겁다. ex) Button Frame TextField. - javax.swing 패키지의 클래스 이용 swing은 자바 영역에서 사용하는 look&feel 을 적용 받아 모든 운영체제에서 동일한 느낌을 제공한다 만들기가 어려우며 대신 빠르고 가볍다 ex)JButton, JFrame, JTextField. 1)Frame(프레임).. 2020. 3. 11.
[JAVA] 기본 타입과 참조타입 데이터 타입에 대한 확실한 개념이 없다면 좋은 프로그램을 만들 수 없습니다. 왜냐하면 프로그램은 자료구조를 통해 데이터를 구성하고 알고리즘을 통해 문제를 해결하기 때문에 여기서 확실히 정리하고 갈 필요가 있다고 생각합니다. 1. 기본 타입(Primitive Type) 자바에서의 기본타입이란 java언어에서 이미 존재하는 데이터 타입입니다. 실제값인 변수에 직접 저장합니다. 그 종류는 정수, 실수, 문자, 논리 리터럴을 가지고 있습니다. →여기서 리터럴(Literal)이란 직접 입력된 값을 말합니다. 정수 리터럴 1) 10진수(기본값), 8진수(0을붙여서 시작), 16진수(0x , 0X로 시작합니다) 종류 : byte. char ,short, int , long 실수 리터럴 2) 소수를 말합니다. 지수식 .. 2020. 3. 10.