목록프로그래밍 언어/Java (17)

수학과의 좌충우돌 프로그래밍

[JAVA] 07. java.lang 패키지

java.lang 패키지 java.lang 패키지는 자바프로그래밍에 가장 기본이 되는 클래스들을 포함하고 있습니다. 그렇기 때문에 해당 패키지에 클래스들은 import문 없이도 사용할 수 있습니다. Object 클래스 Object 클래스는 모든 클래스의 최고 조상이기 때문에 멤버들은 모든 클래스에서 바로 사용가능합니다. 멤버변수는 따로 없으며 11개의 메서드를 가지고 있습니다. equals(Object obj) 매개변수로 객체의 참조변수를 받아서 비교하여 그 결과를 boolean값으로 알려주는 역할을 합니다. public boolean equals(Object obj){ return (this == obj); } 두 객체의 같고 다름을 참조변수의 값으로 판단합니다. 그렇기 때문에 서로 다른 두 객체를 e..

프로그래밍 언어/Java 2021. 1. 13. 23:05
[JAVA] 06. 예외처리

1. 예외처리(exception handling) 프로그램 오류 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우가 있습니다. 이러한 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 합니다. 컴파일에러 : 컴파일 시 발생하는 에러 런타임에러 : 실행 시에 발생하는 에러 논리적에러 : 실행은 되지만 의도와 다르게 동작하는 에러 런타임에러를 방지하기 위해서는 프로그램이 실행 도중 발생할 수 있는 모든 경우의 수를 고려하여 이에 대한 대비를 하는 것이 필요합니다. 자바에서는 실행 시 발생할 수 있는 프로그램 오류를 에러(error)와 예외(exception) 두 가지로 구분하였습니다. 에러는 메모리부족이나 스택오버플로우와 같이 일단 발생하면 복구할 수 없는 심각한 오류이고,..

프로그래밍 언어/Java 2021. 1. 7. 01:18
[JAVA] 05. 객체지향 프로그래밍 (3)

1. 다형성(polymorphism) 다형성이란 여러 가지 형태를 가질 수 있는 능력을 의미하며 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 구현하였습니다. 이로서 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였습니다. 아래 예시를 봅시다. class Tv { int channel; void channelUp() { ++channel; } void channelDown() { --channel; } } class CaptionTv extends Tv { String text; } 일반적으로 그 동안 각 클래스의 인스턴스를 생성하기 위해 아래와 같이 인스턴스의 타입과 일치하는 타입의 참조변수만을 사용했습니다. Tv t = new Tv()..

프로그래밍 언어/Java 2020. 12. 27. 22:13
[JAVA] 04. 객체지향 프로그래밍 (2)

1. 상속(inheritance) 자바에서 상속은 extends라는 키워드를 통해 가능합니다. class Child extends Parent { } 이 때 멤버만 상속되므로 생성자와 초기화 블럭은 상속되지 않습니다. 클래스간의 관계 상속 이외에도 클래스를 재사용하는 또 다른 방법이 존재합니다. 클래스 간에 포함(Composite) 관계를 맺어주는 것입니다. 클래스 간의 포함관계를 맺어주는 것은 한 클래스의 멤버변수로 다른 클래스 타입의 참조변수를 선언하는 것을 의미합니다. 아래와 같이 Circle과 Point 클래스가 있다고 가정합시다. class Circle{ int x; int y; int r; } class Point{ int x; int y; } Point 클래스를 재사용하여 Circle을 재정..

프로그래밍 언어/Java 2020. 12. 27. 22:06
[JAVA] 03. 객체지향 프로그래밍 (1)

1. 클래스에서의 변수 변수는 클래스변수, 인스턴스변수, 지역변수 모두 세 종류가 있습니다. 변수의 종류를 결정짓는 중요한 요소는 변수의 선언된 위치입니다. 멤버변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버변수 중 static이 붙은 것은 클래스변수, 붙지 않은 것은 인스턴스변수입니다. class Variables { int iv; // 인스턴스변수 static int cv; // 클래스변수 void method() { int lv = 0; // 지역변수 } } 인스턴스 변수 생성 시기 : 인스턴스가 생성되었을 때 인스턴스 변수는 인스턴스가 생성될 때마다 생성되므로 인스턴스마다 다른 값을 유지 할 수 있습니다. 선언 위치 : 클래스 영역 클래스 변수 생성 시기 : 클래스가 메모리에 로딩될 때 V..

프로그래밍 언어/Java 2020. 12. 27. 17:29
[JAVA] 02. 변수

자료형은 크게 기본형과 참조형 두 가지로 나눌 수 있습니다. 기본형 변수는 실제 값을 저장하고, 참조형은 어떤 값이 저장되어 있는 주소를 값으로 가집니다. 1. 기본형 기본형에는 모두 8개의 타입이 있으며 크게 논리형, 문자형, 정수형, 실수형으로 구분됩니다. 논리형 Boolean true와 false 중 하나의 값 1bit만 있어도 표현하기에 충분하지만 java에서 데이터를 다루는 최소단위가 byte이기 때문에 1byte로 표현 문자형 char 하나의 문자를 저장 정수형 byte, short, int, long 실수형 float, double 1byte 2byte 4byte 8byte 논리형 boolean 문자형 char 정수형 byte short int long 실수형 float double 2. 상..

프로그래밍 언어/Java 2020. 11. 27. 17:09
[JAVA] 01. 자바를 시작하기 전에

1년도 더 전에 java에 대해서 아주 살짝 공부를 해보았는데 취업을 하고보니 java 개발자가 되어있네요. python과 django만 하다가 다른 언어, 다른 프레임워크를 사용할려고 하니 모든게 낯설고 어렵지만 또 차근차근 공부해보도록 하겠습니다. 그래서 당분간은 java에 대한 기초를 학습하며 포스팅하도록 하겠습니다 :) 1. 자바 1.1 자바란? 썬 마이크로 시스템에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어(현재는 오라클이 인수함) 운영체제에 독립적이기 때문에 다양한 기종의 컴퓨터와 운영체제가 공존하는 인터넷 환경에 적합 풍부한 클래스 라이브러리 1.2 자바의 역사 1991년 썬 엔지니어들에 의해서 고안된 오크(Oak)라는 언어에서부터 시작 원래 목표는 가전제품에 탑..

프로그래밍 언어/Java 2020. 11. 27. 17:06
[Java] GUI 기초, 자주 사용하는 컴포넌트들을 정리해보자

AWT와 Swing 자바에서 사용할 수 있는 GUI 로는 AWT와 Swing 이 있습니다. 먼저 이 둘을 비교해보도록 하겠습니다. AWT Swing 초기에 지원했던 GUI 상대적으로 늦게 나온 GUI 운영체제가 사용하는 자원을 사용 컴포넌트가 자바로 되어있음 플랫폼 의존적 플랫폼 독자적 컴포넌트 용량이 큼 컴포넌트 용량이 가벼움 컴포넌트 개수가 적음 컴포넌트 개수가 많음 이렇게만 비교해봐도 Swing이 더 좋아보이기 때문에 Swing에 대해서 알아보도록 하겠습니다. AWT가 먼저 출시되었고 Swing이 늦게 나왔기 때문에 두 클래스 이름은 충돌이 일어납니다. 따라서 Swing은 기존의 클래스 이름 앞에 J를 추가하여 나타냅니다. 버튼을 예로 들면 AWT에서는 Button으로, Swing에서는 JButto..

프로그래밍 언어/Java 2019. 5. 15. 21:54