Language

Language/Java

[Java] 익명 클래스

익명클래스 추상클래스나 인터페이스에서 메소드가 하나이거나 굳이 class를 만들어서 상속을 받아 오버라이드를 할 필요가 없을 경우 익명클래스를 사용한다. 익명클래스의 특징은 임시적으로 구현된 객체이며 한번만 쓸 경우 대체로 익명클래스를 사용한다. 또한 1회성이기 때문에 다른 곳에서는 쓸 수 가 없다. 익명클래스 예시 인터페이스 package j22_익명클래스; public class Addition implements Calculator { @Override public int calc(int x, int y) { return x + y; } } 추상클래스 package j22_익명클래스; public interface Calculator { public int calc(int x, int y); } m..

Language/Java

[Java] 추상클래스와 인터페이스 차이점

추상클래스 공통된 것을 묶어놓은 것을 추상화라고 한다. 추상 클래스는 하나의 추상 메소드만 가져도 추상클래스로 인식 한다. 추상클래스는 생성자는 있지만 생성이 불가능하고 설계도 역할만 한다. 그 외에는 일반클래스와 동일한 기능을 가진다. 추상클래스를 상속 받으면 자식 클래스에서 부모의 추상 메소드를 전부 재정의를 하여야한다. 추상클래스는 다중상속이 불가능하다. 추상클래스는 중복되는 클래스들 멤버변수를 통합 및 확장을 할 수 있다. package j14_추상; //추상클래스 //공통된 것들을 모아두는 것을 추상화라고 한다. //추상 메소드가 하나라도 있으면 추상클래스라고 정의함. //생성이 불가능하다. //설계도 역할 //그 외에는 일반클래스와 동일한 기능을 가진다. public abstract class..

Language/Java

[Java] Class 형변환

class 형변환 class도 하나의 자료형이기 때문에 형변환이 가능하다 단 class들이 상속관계에 있을 때만 업캐스팅이나 다운캐스팅이 가능하다. 자료형의 형변환과 마찬가지로 다운캐스팅을 할 때에는 명시해줘야 한다. 상속관계 A -> B, C(B,C가 A를 상속받는 관계) 업캐스팅 ex) A a = new B(); -> A가 부모class이고 B는 자식 관계이므로 B를 생성할 때 자동적으로 A class로 업 캐스팅이 되기때문에 명시를 할 필요가 없다 단 상속관계여야 class의 형변환이 가능하다. 여기서 주의할 점은 업캐스팅을 했을 때 B라는 class로 생성을 했지만 A의 메소드만 쓸 수 있다. A class package Javatest; public class A { public void inf..

Language/Java

[Java] Class의 생성자(Constructor) 및 접근 지정자

생성자(Constructor) 생성자는 new 연산자를 통해서 instance를 생성할 때 반드시 호출이된다. 호출과 동시에 제일먼저 실행되는 method라고 할 수 있지만 method와는 다른 특징들이 있다. 또한 생성자는 class의 멤버변수의 초기화를 시키는 역할도 가능하다. 생성자의 특징 생성자의 이름은 class의 이름과 동일해야한다. 생성자는 다른 method와는 다르게 return 타입이 없다. 생성자는 객체가 생성될 때 자동으로 한번 호출한다. 생성자는 매개변수 조건에 따라 여러 개를 작성할 수 있다.(생성자 오버로딩) 생성자는 class에 최소 1개는 있어야하며 기본적으로 기본 생성자가 생략되어있고 자동으로 생성한다. 만약 생성자 코드가 1개라도 있다면 컴파일러는 기본 생성자가 없어도 기..

Language/Java

[Java] Class와 객체지향언어(OOP)

객체지향언어(OOP) Java는 설계자체를 객체지향언어(OOP)로 만들었다. 그렇기 때문에 class를 쓰지않는 Java는 상상할 수 가 없다. 그렇다면 여기서 객체지향언어란 무엇인가? OOP(Object-Oriented-Programming) 객체란 세상에 존재하는 모든 것을 의미 즉, 주변의 사물, 생명등을 말한다. 객체지향언어란 프로그래밍 관점에서 객체들의 관계성을 사용하여 순차적으로 프로그램이 돌아가는 것을 객체지향언어라고 생각한다. 객체의 예시 객체는 앞에서 말한 것처럼 우리 주위에 사물들, 생명, 사람, 모든 것을 객체로 표현 할 수 있다. 프로그래밍 관점에서 객체란 객체 = Data + 기능 으로 표현 할 수 있다. 만약 객체를 컴퓨터(PC)라고 생각해보자 그렇다면 컴퓨터의 Data부분과 기..

Language/Java

[Java] Method(함수)

Method(함수)란 보통 프로그래밍 언어에서는 함수를 Method라고 부르는 것은 class안에 있는 함수들을 의미한다. 하지만 Java에서는 Method라고 부르는데 그 이유는 Java는 class를 떠나 존재하는 것은 있을 수 없기 때문에 Java에서 함수는 따로 존재하지 않고 class내에 존재하는 함수를 Method라고 한다. Method의 형태 아래의 그림은 간단하게 작성한 method의 형태이다. 호이스팅 호이스팅이란 주로 Javascript와 같은 일부 언어에서 변수선언이나 함수 선언을 해당 스코프에 최상단으로 끌어올리는 동작을 말한다. 즉 호이스팅은 실제 코드의 위치보다 앞서서 실행되는 것처럼 동작되는 것이며 주로 컴파일러나 인터프리터 동작방식에 의해 이루어진다. Java에서는 metho..

Language/Java

[Java] 반복문

반복문 반복문은 조건을 걸어서 작업들을 반복적으로 제어할 때 쓰는 명령어이다. for문 for문의 형태 for(시작조건 : 종결 조건: 조건 변화수식){ 명령문; } 두 수를 입력받아 시작 숫자부터 끝 숫자까지의 합을 반복문을 통해서 구현한 코드 package j07_반복; import java.util.Scanner; public class Loop2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int startNumber = 0; int endNumber = 0; int sum = 0; System.out.print("시작 : "); startNumber = scanner.nextInt(); S..

Language/Java

[Java] 조건문

조건문 조건문은 어떠한 조건에 따라 실행문장을 동작할지 안할지 수행하도록 하는 명령문입니다. if문 조건문 중에서 가장 기본이되는 if문입니다. package j06_조건; import java.util.Scanner; public class Conditional2 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a = 0; int b = 0; int c = 0; int max = 0; int min = 0; System.out.println("정수 3개 입력 : "); a = scanner.nextInt(); b = scanner.nextInt(); c = scanner.nextInt(); m..

otso
'Language' 카테고리의 글 목록