java 26

[Baekjoon] 백준 11720 숫자의 합 - java

이번에는 입출력 문제 중 하나인 숫자의 합을 풀어보려 합니다. 문제는 https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 여기서 확인하시면 됩니다. 문제풀이 package Baek; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Java11720 { public static void main(String[] args) throws IOException { BufferedReader br =..

Algorithm/Baekjoon 2022.02.19

[Baekjoon] 백준 10953 A + B - 6 - java

오늘은 입출력 문제인 A + B의 많은 문제중 6번째 문제를 풀어볼까 합니다. 이번 문제는 Scanner와 BufferedReader 두가지를 사용해서 각각 풀어봤습니다. 문제는 https://www.acmicpc.net/problem/10953 10953번: A+B - 6 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 여기서 확인하시면 됩니다. 문제풀이 package Baek; import java.io.IOException; import java.util.Scanner; public class Main { public static void main(String[] args) throws IOException { Scanner sc = new ..

Algorithm/Baekjoon 2022.02.19

[JAVA] 자바의 추상클래스(abstract class)

오늘은 자바의 추상 클래스에 대해 공부해보도록 하겠습니다. 추상 클래스는 하나이상의 추상 메소드를 포함하고 있는 클래스입니다. 그렇다면 추상 메소드는 무엇일까요? 추상 클래스를 공부하기 전에 추상 메소드 먼저 살짝 알아보고 가겠습니다. 추상메소드 abstract 리턴타입 메소드명(); 추상메소드는 위와같이 바디부분 없이 선언만 되어있는 메소드입니다. 선언할 때 abstract를 앞에 써줍니다. 이러한 추상메소드는 부모 클래스가 아닌 자식 클래스에서 "반드시" 구현되어야 하는 메소드입니다.(즉, 오버라이딩 되어야 사용이 가능합니다.) 추상클래스 추상 클래스란 처음에 설명했던것과 같이 하나이상의 추상메소드를 포함하고 있는 클래스입니다. abstract class 클래스명{ abstract 리턴타입 메소드명(..

Java/JAVA 2021.09.26

[JAVA] 자바의 다형성(polymorphism)

자바는 객체지향프로그래밍(OOP) 언어 중 하나로 객체지향프로그래밍의 특징에는 추상화, 상속, 다형성, 캡슐화 이렇게 4가지가 존재합니다. 지난 포스팅에는 자바의 상속에 대해 공부했었는데 오늘은 자바의 다형성에 대해 공부해보도록 하겠습니다. 다형성이란? 하나의 객체가 여러가지 타입을 가질 수 있는 것을 말합니다. 반대로 타입이 같을 때 객체에 따라 다른 역할을 하기도 합니다. 오버라이드와 비슷한 특징을 가지고 있죠 다형성의 특징으로는(자식 타입이 부모 타입에 상속되어있다는 필수 전제조건이 필요합니다.) 1. 부모 타입으로 자식 생성 가능 Parent p = new Child(); 2. 부모 타입 변수에 자식 대입 가능 Child c = new Child(); Parent p = c; 3. 부모 메소드를 ..

Java/JAVA 2021.09.24

[JAVA] 자바의 상속(inheritance)

오늘은 자바의 상속에 대해 공부해보도록 하겠습니다. 상속은 자바인 객체지향프로그래밍의 특징 4가지 중 하나로 간단히 말하자면 부모의 것을 자식이 받아서 쓸 수 있는 것을 말합니다. 상속이란 클래스에 다른 클래스의 기능을 추가하거나 재정의하는것을 말합니다. 상속을 하게 되면 다른 클래스에 있는 메소드와 필드를 물려받아 사용하게 되는 클래스를 만들 수 있습니다. 지난 포스팅에서 잠깐 살펴봤지만 상속을 사용하기 위한 코드는 extends이며, 상속해주는 클래스를 부모클래스, 슈퍼클래스, 상위 클래스, 기초 클래스라고 하며 상속받는 클래스를 자식 클래스, 하위 클래스, 파생 클래스라고 합니다. ** 부모클래스 > 자식 클래스 이기 때문에 부모 클래스 밑에 있는 자식 클래스에선 부모 클래스의 메소드를 가져다가 쓸..

Java/JAVA 2021.09.23

[JAVA] 자바의 오버로딩(Overloading), 오버라이딩(Overriding)

오늘은 자바의 오버로딩과 오버라이딩에 대해 공부해보도록 하겠습니다. 이 두개는 이름이 비슷해서 많이 헷갈리지만 하는 역할은 매우 다릅니다. 오버로딩(Overloading) 오버로딩은 같은 이름의 메소드를 중복해서 정의하는 것입니다. 오버로딩을 사용해 메소드에 사용되는 이름을 절약할 수 있고, 오버로딩을 써서 메소드를 만들어 놓으면 메소드를 호출할 때 전달해야 할 파라미터의 타입이나 개수에 신경을 쓰지 않고 호출해서 사용할 수 있습니다. 코드로 예시를 들어보겠습니다. Test2.java package test; public class Test2 { public int sum(int i) { return i+i; } public int sum(int i, int j) { return i+j; } public..

Java/JAVA 2021.09.22

[JAVA] 자바의 substring, split, StringTokenizer

오늘은 자바에서 쓰이는 substring, split, StringTokenizer에 대해 공부해보도록 하겠습니다. substring String s = "The String class represents character strings."; 위와 같은 문자열로 선언된 s가 있다고 할 때 이렇게 사용합니다. 위에서 보면 알 수 있듯 substring은 String.substring(start, end) // 문자열 start위치부터 end전까지의 문자열을 출력 가 됩니다. (이때 end 숫자가 없다면 start위치부터 끝까지 문자열 자르기를 합니다.) 또한 start, end위치는 index값으로 구분하기 때문에 "T" = 0번부터 시작해서 "S" = 4번 ... "g" = 9번, " " = 10번이 되..

Java/JAVA 2021.09.20

[JAVA] 자바의 String과 StringBuffer

오늘은 String과 StringBuffer의 차이점에 대해서 공부해보도록 하겠습니다. String 지난 포스팅에서도 설명했지만 String은 불변성(immutable)을 가지고 있습니다. 불변성이란 말 그대로 변하지 않는 것을 의미합니다. 그래서 데이터가 한번 생성되고 나면 그 뒤에는 변하지 않습니다. String이 한번 선언되면 변하지 않는다니 뭔가 잘 이해가 안되시죠 간단한 코드로 알아봅시다. String s = "Hello"; System.out.println(s.hashCode()); s += ", Java"; System.out.println(s.hashCode()); System.out.println(s); 결과를 보면 s를 출력했을때의 연산은 잘 나왔지만 주소값이 앞에 두 개가 다른 것을 ..

Java/JAVA 2021.09.19

[JAVA] String pool

자바에서 String은 참조 타입이지만 기본 타입처럼 사용이 가능합니다. String은 불변성을 가지고 있기때문에 String이 아닌 다른 타입과 연산을 할 경우 String 타입으로 인식하게 됩니다. 간단한 코드를 통해 쉽게 알아보겠습니다. package test; public class Test { public static void main(String[] args) { String s = "Java"; String h = "Java"; String newS = new String("Java"); System.out.println(s + 1 + 2); System.out.println(1 + 2 + s); System.out.println(s); System.out.println(h); System...

Java/JAVA 2021.09.18

[JAVA] 자바의 메소드(Method)

맨 처음 자바 기본에서 설명했듯이 자바의 기본적인 형태는 클래스와 클래스를 구성하는 메소드와 필드로 구성되어 있다고 했습니다. 오늘은 그중에서 메소드에 대해 공부해보도록 하겠습니다. 메소드는 자바의 기능을 사용하기 위한 명령문들의 집합이라고 할 수 있습니다. 하나의 이름으로 여러 개의 명령을 일괄 처리할 수 있는 모듈이라고 생각하시면 됩니다. 그렇기 때문에 메소드를 잘 이용하면 중복되는 코드가 반복적으로 실행되는 것을 피할 수 있습니다. 메소드의 선언 방법은 접근제한자 메모리영역 리턴타입 메소드명(파라미터) { 명령; } 이 됩니다. 우리가 지금까지 공부하면서 사용했던 대표적인 메소드를 예를 들면 main메소드가 있죠? 한번 살펴봅시다. public(접근제한자) static(메모리영역) void(리턴타입..

Java/JAVA 2021.09.17