자바 프로그래밍

Programming/Java_자바

[JAVA 기초] 내부클래스, '람다식' 이란?

Explain 람다식 - Lambda Expression : 자바에서 함수형 프로그래밍을 구현하는 방식 (자바 8부터 지원) : 클래스를 생성하지 않고 함수의 호출만으로 기능을 수행 '함수형 프로그래밍' 이란? : 순수함수를 구현하고 호출함으로써 외부 자료에 부수적인 영향없이 매개변수만을 사용하도록 만든 함수 : 외부에 영향을 미치지 않아 병렬처리 등에 사용이 가능 (+확장성 / +안정적) 일반 함수에서는 int add(int x, int y) { return x + y; ] 처럼 구현이 되지만, 람다식에서는 (int x, int y) -> {return x + y;} 처럼 간단히 구현할 수 있다. 매개변수가 1개이냐, 2개이냐에 따라 혹은 반환하는 값에 따라 중괄호의 여부가 달라지지만 기본적인 구조는 ..

Programming/Java_자바

[JAVA 기초] Comparable 와 Comparator 인터페이스

Explain Compareble 인터페이스 : 컬렉션 프레임워크의 TreeSet, TreeMap 등 Tree--- 에서 쓰이는 인터페이스로, 정렬을 할 때 사용이 된다. : 여기서 TreeSet, TreeMap은 객체의 정렬에 사용되는 클래스를 의미 : Compareble 인터페이스는 compareTo()메서드를 구현하고, 매개변수와 객체 자신(this)를 비교한다는 점이다. Comparator 인터페이스 : 컬렉션 프레임워크의 TreeSet, TreeMap 등 Tree--- 에서 쓰이는 인터페이스로, 정렬을 할 때 사용이 된다. : Comparator 인터페이스는 compare()메서드를 구현하고, 두 개의 매개변수를 비교한다. - 중복을 허용하지 않으면서 오름차순이나 내림차순으로 객체를 정렬 - 내..

Programming/Java_자바

[JAVA 기초] 스택(Stack), 큐(Queue), 해시세트(HashSet) 구현 및 실습

Explain 스택 (Stack) : 하노이탑에 개체를 쌓듯 데이터가 LIFO(Last-In First-Out) 구조로 쌓이는 자료구조 큐 (Queue) : 가로형태의 원통형 구조라고 가정할 수 있고, 맨 좌측 front, 맨 우측 rear(꼬리) 의 자료구조 : 데이터가 FIFO(First-In First-Out) = 가장 먼저 들어간 것이 가장 먼저 나오는 구조 해시세트 (HashSet) : Set 인터페이스의 구현 클래스로 객체를 중복해서 저장할 수 없고 : 하나의 null 값만 저장할 수 있는 Set의 성질을 그대로 상속받음 >> 저장순서가 중요하지 않음 >> 같은 Set 인터페이스의 하위 클래스 중 TreeSet은 데이터를 자동정렬해주는 특징이 있지만 HashSet은 그렇지 않음 실습코드 pac..

Programming/Java_자바

[JAVA 기초] Collection 인터페이스 (컬렉션 인터페이스)와 ArrayList 예제 실습

Explain 컬렉션 인터페이스 (Collection Interface) : 하나의 객체를 관리하기 위한 메서드가 정의된 인터페이스 : 하위에 List와 Set 인터페이스를 가짐 1. 리스트 인터페이스 (List Interface) - 순서가 있는 자료관리, 중복을 허용 - 객체를 순서에 따라 저장하고 관리하는데 필요한 메서드가 선언된 인터페이스 - 배열의 기능을 구현하기 위한 인터페이스 - 이 인터페이스를 구현한 클래스는 ArrayList / Vector / LinkedList / Stack / Queue 등이 있음 2. 세트 인터페이스 (Set Interface) - 자료관리에 순서가 없음, 중복을 허용하지 않음 - 이 인터페이스를 구현한 클래스는 HashSet / TreeSet 이 있음 - 아이디,..

Programming/Java_자바

[JAVA 기초] 스택(Stack), 큐(Queue), 트리(Tree)

Explain 스택 (Stack) : 하노이탑에 개체를 쌓듯 데이터가 LIFO(Last-In First-Out) 구조로 쌓이는 자료구조 - 배열이나 연결리스트 둘다 구현가능 - 중간에서 데이터의 수정이 일어나지 않음 - 맨 위의 위치를 top, 맨 아래의 위치를 bottom 이라 칭함 - LIFO (후입선출) 구조로 가장 나중에 넣은것이 가장 먼저 나오는 자료구조 - push() = 데이터 삽입, pop() = 데이터 빼기 처럼 사용가능 - 실무 사용 예로 게임개발에서 두 수 무르기, 왔던 곳을 되돌아가기 등의 기능을 구현할때 사용 - 자바 JDK에서는 Stack 클래스로 구현하거나 ArrayList로 구현이 가능 - Peek() : 일종의 get()으로 스택의 맨 위에 있는 원소를 반환 (=실제로 꺼내..

Programming/Java_자바

[JAVA 기초] 제네릭 프로그래밍, 컬렉션 프레임워크

Explain 제네릭 프로그래밍 (Generic Programmming) : 변수의 선언이나 메서드의 매개변수를 하나의 참조 자료형이 아닌 여러 자료형을 변환될 수 있도록 프로그래밍 하는 방식 - 실제 사용되는 참조 자료형으로의 변환은 컴파일러가 검증하므로 안정적 - 컬렉션 프레임워크에서 많이 사용되고 있음 1. 제네릭 클래스는 여러 참조 자료형으로 대체될 수 있어야하므로 그 부분을 "하나의 문자"로 표현함 >> 이 문자를 '자료형 매개변수' 라고함 >> 자료형 매개변수 선언은 T 로 하며, 이 T는 Type의 의미로 사용됨 다이아몬드 연산자 안에 T를 사용해 표현 static키워드는 매개변수 T에 사용이 불가하다. 2. 예시로 T extends 클래스 = T가 사용될 클래스를 제한하기 위해 사용하는 기..

Programming/Java_자바

[JAVA 기초] 상속과 다형성의 간단한 예제 (동물)

강의를 참고해 만든 프로그램이므로 코딩 난이도는 다소 떨어질 수 있습니다. Introduction ArrayList를 이용해 동물 클래스로부터 상속받는 Human, Tiger, Eagle, Bear 클래스를 만든다. 각 클래스는 공통적으로 move()메서드가 있으며, 각각 다른 기능의 메서드가 존재한다. 구현은 print문을 통해 간단히 확인한다. 부모 클래스 (class Animal) class Animal { public void move() { System.out.println("동물이 움직입니다."); } } 큰 카테고리인 동물 클래스를 만들고 이로부터 상속받을 수 있도록 코드를 구현한다. 자식 클래스 (class Human, Tiger, Eagle, Bear) class Human extends..

Programming/Java_자바

[JAVA 기초] 대중교통 이용 프로그램 만들기

강의를 참고해 상속없이, 객체 간의 협업으로 만든 프로그램이므로 코딩 난이도는 다소 떨어질 수 있습니다. Introduction 필요한 클래스 : 학생, 버스, 지하철 '학생'클래스의 정보 : 이름, 학년, 돈 '학생'클래스의 메서드 : 탄다, 정보 '버스'클래스의 정보 : 버스번호, 승객 수, 돈 '버스'클래스의 메서드 : 태우다, 정보 '지하철'클래스의 정보 : 노선번호, 승객 수, 돈 '지하철'클래스의 메서드 : 태우다, 정보 첫번째 클래스 (Student.java) package cooperation; public class Student { int grade; int money; String studentName; public Student(String studentName, int money)..

Programming/Java_자바

[JAVA 기초] 생성자

Example Student studentLee = new Student(); Explain 라는 코드에서 Student() 는 "생성자"를 의미한다. 그렇다면 public Student() { } 처럼 기본생성자를 넣어주어야하지만 코드에는 없어도 실행이 잘되는 것을 확인할 수 있다. 왜냐하면 자바 컴파일러가 자동적으로 추가해 실행해주기 때문인데, 자바 컴파일러는 클래스에 생성자가 하나도 없는 경우에 기본생성자를 알아서 추가해서 실행해주는 특징이 있다. * 특징 1. 매개변수가 없음 2. 하나의 클래스에는 반드시 적어도 하나 이상의 생성자가 존재해야함 3. 프로그래머가 따로 지정하지 않으면 컴파일러가 기본생성자를 자동으로 코드에 추가해줌 4. 만약 매개변수가 있는 생성자를 추가하게 된다면 기본생성자는 제..

LEFT
'자바 프로그래밍' 태그의 글 목록