Explain 스택 (Stack) : 하노이탑에 개체를 쌓듯 데이터가 LIFO(Last-In First-Out) 구조로 쌓이는 자료구조 - 배열이나 연결리스트 둘다 구현가능 - 중간에서 데이터의 수정이 일어나지 않음 - 맨 위의 위치를 top, 맨 아래의 위치를 bottom 이라 칭함 - LIFO (후입선출) 구조로 가장 나중에 넣은것이 가장 먼저 나오는 자료구조 - push() = 데이터 삽입, pop() = 데이터 빼기 처럼 사용가능 - 실무 사용 예로 게임개발에서 두 수 무르기, 왔던 곳을 되돌아가기 등의 기능을 구현할때 사용 - 자바 JDK에서는 Stack 클래스로 구현하거나 ArrayList로 구현이 가능 - Peek() : 일종의 get()으로 스택의 맨 위에 있는 원소를 반환 (=실제로 꺼내..
Explain 제네릭 프로그래밍 (Generic Programmming) : 변수의 선언이나 메서드의 매개변수를 하나의 참조 자료형이 아닌 여러 자료형을 변환될 수 있도록 프로그래밍 하는 방식 - 실제 사용되는 참조 자료형으로의 변환은 컴파일러가 검증하므로 안정적 - 컬렉션 프레임워크에서 많이 사용되고 있음 1. 제네릭 클래스는 여러 참조 자료형으로 대체될 수 있어야하므로 그 부분을 "하나의 문자"로 표현함 >> 이 문자를 '자료형 매개변수' 라고함 >> 자료형 매개변수 선언은 T 로 하며, 이 T는 Type의 의미로 사용됨 다이아몬드 연산자 안에 T를 사용해 표현 static키워드는 매개변수 T에 사용이 불가하다. 2. 예시로 T extends 클래스 = T가 사용될 클래스를 제한하기 위해 사용하는 기..
강의를 참고해 만든 프로그램이므로 코딩 난이도는 다소 떨어질 수 있습니다. 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..
강의를 참고해 상속없이, 객체 간의 협업으로 만든 프로그램이므로 코딩 난이도는 다소 떨어질 수 있습니다. Introduction 필요한 클래스 : 학생, 버스, 지하철 '학생'클래스의 정보 : 이름, 학년, 돈 '학생'클래스의 메서드 : 탄다, 정보 '버스'클래스의 정보 : 버스번호, 승객 수, 돈 '버스'클래스의 메서드 : 태우다, 정보 '지하철'클래스의 정보 : 노선번호, 승객 수, 돈 '지하철'클래스의 메서드 : 태우다, 정보 첫번째 클래스 (Student.java) package cooperation; public class Student { int grade; int money; String studentName; public Student(String studentName, int money)..
Example Student studentLee = new Student(); Explain 라는 코드에서 Student() 는 "생성자"를 의미한다. 그렇다면 public Student() { } 처럼 기본생성자를 넣어주어야하지만 코드에는 없어도 실행이 잘되는 것을 확인할 수 있다. 왜냐하면 자바 컴파일러가 자동적으로 추가해 실행해주기 때문인데, 자바 컴파일러는 클래스에 생성자가 하나도 없는 경우에 기본생성자를 알아서 추가해서 실행해주는 특징이 있다. * 특징 1. 매개변수가 없음 2. 하나의 클래스에는 반드시 적어도 하나 이상의 생성자가 존재해야함 3. 프로그래머가 따로 지정하지 않으면 컴파일러가 기본생성자를 자동으로 코드에 추가해줌 4. 만약 매개변수가 있는 생성자를 추가하게 된다면 기본생성자는 제..
실습문제 1번 자바에서 10진수와 2진수, 8진수, 16진수를 어떻게 표현하는지 프로그래밍 하기 package binary; public class BinaryTest { public static void main(String[] args) { int num = 10; int numA = 0B1010; // 0B = 2진수 라는 뜻 int numB = 012; // 0으로 시작하면 = 8진수 라는 뜻 int numC = 0XA; // 0X = 16진수 라는 뜻, A는 10을 의미함 // 9, A, B, C, D, E, F, 10, 11, 12, 13, 14, 15, 16... System.out.println(num); System.out.println(numA); System.out.println(nu..
자바 연습으로 하는 코딩이므로 틀린 점 있으면 피드백 해주시면 감사하겠습니다. 실습문제 1번 아래 실행결과와 같이 출력하는 다음 main()을 가진 Song클래스를 작성하라. Song클래스는 노래제목 title필드, 생성자, getTitle() 메소드로 구성된다. package Java_Essential_Week4; //실습문제 1번 /* 아래 실행결과와 같이 출력하는 다음 main()을 가진 Song클래스를 작성하라. Song클래스는 노래제목 title필드, 생성자, getTitle() 메소드로 구성된다. */ public class Song { public String title; public Song(String title) { this.title = title; } public String get..
자바 코딩 연습 Chapter 3장 입니다. 참고한 점도 많고, 고민도 많이 해봤었는데, 해결하는데 꽤 시간이 걸렸던 것 같습니다. 실습문제 1번) 영문소문자를 하나 입력받고 그 문자보다 알파벳 순위가 낮은 모든 문자를 출력하는 프로그램을 작성하라. package Java_Essential_Week3; import java.util.Scanner; public class Lesson_01 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("알파벳 한 문자를 입력해주세요. "); char alphabet = sc.nextLine().charAt(0); // 문자열의 첫번쨰 문자를 al..
안녕하세요. 첫 게시물을 자바 코딩 연습 일지로 시작하게되었습니다. 이미 진행한 적 있는 실습이지만 다시 복습해가면서 상기시켜보려합니다. 실습문제 1번) 두 정수를 입력받아 합을 구하여 출력하는 프로그램을 작성하라. 키보드 입력은 Scanner 클래스를 이용하라. package Java_Essential; import java.util.Scanner; public class Lesson_1 { public static void main(String[] args) { Scanner Bascket = new Scanner(System.in); // 사용자로부터 데이터를 입력받는다. System.out.print("두 정수를 입력해주세요 !! "); // 두 정수를 입력받도록 도움말을 프린트한다. int a ..