본문 바로가기

Java/기초 Java13

[기초 자바] List 인터페이스, ArrayList 1. list에 값 추가하기 ArrayList list = new ArrayList(); //추가 list.add(111); Integer in = new Integer(222); list.add(in); list.add(new Integer(333)); //총 3가지 방법을 써먹을 수 있다. ArrayList는 객체 배열을 구현한 클래스이며, 객체 순서를 기반으로 자료를 순서대로 관리하는 프로그램을 만들 때 씁니다. 예를 들어, 정수형 자료가 들어가는 ArrayList인 list를 생성한다고 할 때, 제너릭을 활용하여 ArrayListlist = new ArrayList(); 이렇게 선언을 해줍니다. list안에 값을 집어넣을 때는 총 세 가지 방법을 쓸 수 있는데, 공통적으로는 list.add(val.. 2021. 5. 21.
[기초 자바] Generic이 대체 뭔가요? 우리가 어떤 변수나 함수의 자료형을 필요에 따라서 여러개로 바꿀 수 있다면 어떨까요? 어떤 특정한 값이 하나의 참조 자료형이 아니라 여러 개를 쓸 수 있도록 하는 것이 바로 Generic Programming입니다. 예를 들어서 요리를 하는데, 들어가는 재료가 다르다고 합시다. 닭고기 카레와 소고기 카레가 있는데, 들어가는 것이 닭이냐 소냐 이 차이만 있을 뿐, 하는 과정은 처음부터 끝까지 완벽하게 똑같습니다. 이런 경우에 레시피를 아예 각각 다르게 쓰는게 효율적일까요 아니면 재료 부분만 다르게 적는게 효율적일까요? 마찬가지로 제네릭 역시 자료형 매개변수 T를 통해서 여러 가지 자료형을 써먹을 수 있게 해줍니다. public class Generic { public static void main(Stri.. 2021. 5. 20.
[기초 자바] 상속의 기초 개념(1) package may0518; public class Inheritance { public static void main(String[] args) { ChildClass cc = new ChildClass(); cc.childFunc(); System.out.println("///"); cc.parentMethod(); cc.name = ""; //같은 패키지 안에서는 에러 나지 않고 인식됨 } } 부모클래스인 A클래스가 B클래스에게 상속한다는 말은 , B클래스가 A클래스의 자식클래스가 되어 상속을 받는다는 뜻입니다. 이런 경우에 자식클래스인 B클래스는 A클래스의 멤버 변수와 메서드를 편리하게 사용할 수가 있습니다. class B extends A{ } 이렇게 표현하는데요, extend라는 단어가 확장.. 2021. 5. 18.
[기초 자바] 피보나치 수열 package java0513; import java.util.Arrays; public class fibonacci { public static void main(String[] args) { long a, b, c; long arrNum[] = new long[30]; a = 1; b = 3; arrNum[0] = a; arrNum[1] = b; int w = 0; while(w 3 a b c 2 + 3 => 5 a b c 3 + 5 => 8 a와 b를 더해서 c값이 나왔습니다. 그러면 이제 기존의 a값은 b가 되고, b는 c가 되어 계속해서 연산이 이어져나가게 됩니다. 총 30개를 만들것이므로 while(w 2021. 5. 13.
[기초 자바] String class 우리가 말을 할 때, "네" 라고 간결하게 말하는 경우도 있지만 "알겠습니다" 라고 말하는 경우도 있듯이 자바에서 문자열을 사용할 수 있도록 제공해준 것이 바로 String 클래스입니다. 얼마 배우지는 않았지만 String 클래스는 아주 자주 쓰인다는 것을 일주일도 지나지 않아 알 수 있었습니다. 이러한 String을 사용할 때에 제일 처음으로 이해하고 넘어가야 하는 부분은 문자열을 생성하는 방식이 두 가지가 있다는 것입니다. 1. 문자열을 생성자의 매개변수로 만들어서 생성하기 예. String str1 = new String("안녕하세요"); 2. 이미 생성되어 있던 문자열 상수를 지목하기 예. String str2 = "hello"; 1번처럼 new 예약어를 사용해서 객체를 만들면, "안녕하세요"라는.. 2021. 5. 11.
[기초 자바]wrapper class wrapper는 기본 자료형을 감싸고 있는 클래스라는 뜻입니다. 대체 왜 감싸야하는 걸까요..그냥 풀어주면 안 되는 걸까요? boolean,byte, char, short, int , long, float, double까지 8가지 기본 자료형은 모두 wrapper class를 갖고 있습니다. 코드를 읽었을 때 구분하기 위해 wrapper class는 대문자로 시작하고 줄여서 쓰지 않습니다. boolean -> Boolean byte -> Byte char -> Character short -> Short int -> Int long -> Long float -> Float double -> Double 요렇게 됩니다. 왼쪽의 기본 자료형은 변수로 취급됩니다. int data = 5; 이런식으로 쓰이죠 객.. 2021. 5. 11.
[기초 자바] 중복되지 않는 랜덤숫자 쉽게 만들기 앞에서 세자리 랜덤숫자를 만들기가 어려워서 각 배열의 요소 하나하나 Math.random()으로 넣어줬는데 이번에는 좀 더 쉬운 방법을 알아보겠습니다. 스위치 개념을 이용하는 것입니다. boolean swit[]배열을 만들어줍니다. 크기는 45로 잡아봤어요, 왜냐면 로또라는게 45개 중에 6개만 맞추면 인생 대박나는 거잖아요(말처럼 쉽지 않지만) 즉 swit[] 배열은 0이나 1로 이뤄진 45개의 요소를 가지게 됩니다. 로또 5000원 어치만 사볼께요, 그러면 6개씩 5줄이 뽑힌 종이 한 장이 나올겁니다. 그런데 이 종이 안에 단 하나의 숫자도 중복이 없었으면 좋겠습니다. 그래서 int lotto[] = new int[30]을 함께 만들어줬어요. 이 안에는 30개의 정수가 들어갈 수 있겠네요. 30개의 .. 2021. 5. 10.
[기초 자바] 숫자 업다운해서 랜덤 숫자 맞추기 컴퓨터에게 계속 숫자를 주면서 이거 맞아? 아니면 이거야? 하면서 놀 수 있는 놀이를 소개하고자 합니다. 술자리에서 소주 병뚜껑에 있는 숫자를 기준으로 그것보다 작다 크다 하면서 걸린 사람이 술 먹는 게임 해보신 적 다들 있으시죠? 그것과 매우 유사합니다. 일단 첫번째로 우리가 컴퓨터에게 숫자를 던져줘야하기때문에 스캐너를 써먹어야겠습니다. Scanner sc = new Scanner(System.in)으로 sc를 만들어주면 이걸 이용해서 우리는 키보드로 숫자를 타닥타닥 적을 수 있게됩니다. 이번 케이스에는 두개의 숫자가 필요하겠죠? 바로 컴퓨터가 랜덤하게 만들어서 가지고 있는 숫자와 우리가 무작위하게 던져볼 숫자 두 개를 randNum, userNum으로 미리 선언했습니다. 그 다음으로는 boolean을.. 2021. 5. 10.
[기초 자바] 키보드 입력과 비트연산자 System.in.read(); read는 int형밖에 받지 못합니다.. 그렇다면 어떻게 처리를 해줘야 할까요? throw 처리를 통해 다른 클래스에서 실행하도록 합니다. (IOException 처리) System.in.read 함수는 byte 단위로 읽다보니 키보드로 정수나 실수 받을 때도 많고 단어 단위로 끊어서 해야할 경우도 있는 등 여러가지 요구사항을 처리하는데 불편한 점이 있습니다. 그래서 변환기를 사용하는데 여기서 Scanner를 변환기라고 생각하면 좋습니다. Scanner kb = new Scanner(System.in);//생성, 등록하기 소괄호 안에는 어디에서 갖고 올 건지를 표현합니다. import java.util.Scanner; //import는 패키지가 다를 때 써줍니다. 2021. 4. 8.