자바 36

[Java] 다형성(polymorphism)

다형성(polymorphism) -> 다형성은 다양한 형태 또는 특성을 가진다는 의미입니다. 자바와 같은 객체 지향 언어에서 의미는 부모 클래스를 상속받은 자식 클래스의 인스턴스가 부모의 객체로 사용되고, 자식 클래스의 객체로도 사용될 수 있는 다양한 상황을 의미합니다. 예를 들어, "앵무새가 말을 하네"라는 문장은 "새가 말을 하네"라는 문장으로 사용하여도 어색하지 않습니다. 앵무새가 새의 한 종류이기 때문에 같은 의미로 사용 가능합니다. class Bird {} class Parrot extends Bird {} public class Main { public static void main(String[] args) { Bird b1 = new Bird(); Parrot p1 = new Parrot(..

JAVA 2022.08.31

[Java] 추상 클래스(abstract)

추상 클래스(abstract) -> 추상 클래스는 클래스의 구체적인 내용을 작성하지 않고 '공통적인 특징'을 추상적으로 선언합니다. 반환 값도 없으며, 메소드 명만 선언합니다. 메인 클래스에 추상 클래스의 객체를 바로 생성할 수 없습니다. 그렇다면 추상 클래스는 어떻게 사용해야 할까요? 추상 클래스는 자식 클래스에게 상속을 해줌으로써 사용 가능합니다. 즉, 추상 클래스는 부모 클래스의 역할을 하며 자식 클래스는 추상 메소드를 재정의하여 사용합니다. 이러한 추상 클래스의 특징 때문에 추상 클래스는 상속의 '강제성'을 가집니다. (추상 클래스에도 일반 메소드를 포함할 수 있음) abstract class Animal { abstract void cry(); //추상클래스 void eat() {System.o..

JAVA 2022.08.19

[백준 - Java] 2529번 - 부등호

2529번 - 부등호 main, dfs, comp 함수로 구성 dfs 함수는 재귀적으로 사용 (void) comp 함수는 왼쪽, 오른쪽 정수가 부등호에 부합하는지 true, false로 반환 (boolean) import java.io.*; import java.util.*; public class Main { static int k; static boolean[] visit; static List output = new ArrayList(); static StringBuilder sb; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(S..

Baekjoon 2022.08.17

[백준 Java] 10808번 - 알파벳 개수

10808번 - 알파벳 개수 BufferedReader를 사용하여 단어 S를 입력한다. 알파벳 개수를 나타낼 arr 배열을 선언한다. (길이는 알파벳 개수만큼!) 아스키코드를 사용하여 알파벳의 해당 인덱스를 1씩 더해준다. 마지막으로 반복문을 사용하여 append하고 sb를 출력한다. import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); String S ..

Baekjoon 2022.08.02

[자바, C++] 1978번 - 소수 찾기

1978번 - 소수 찾기 코드 설명 입력받을 숫자의 개수(=N) Scanner로 입력받기 N만큼 for문 돌리기 소수인지 아닌지는 isPrime변수를 통해 확인 input_Num이 1일 경우 다음 단계가 필요 없기에 continue input_Num % j == 0 -> 나머지가 0일 경우 소수가 아님 -> isPrime = false for문이 실행되는 동안 isPrime이 true로 유지될 경우 count_Num을 1씩 증가 마지막으로 sc.close()로 스캐너 끝내기 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N ..

Baekjoon 2021.09.26

[자바] 백준 - 8958번

8958번 - OX퀴즈 입력받을 문자열의 개수를 Scanner로 입력 받고자 배열의 크기 정하기 for문을 이용해 각 인덱스에 문자열 입력받기 if문을 이용해 문자열의 단어를 하나씩 비교 비교한 문자가 'O'와 동일할 때 count를 1씩 증가하고, 그렇지 않을 때 count를 0으로 초기화 sum에 count에 있는 값을 누적에서 더하기 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] arr = new String[sc.nextInt()]; for (int i = 0; i < arr.length; i++) { arr..

Baekjoon 2021.08.04

[자바] KeyListener + Scanner

Scanner로 문자 입력받아 창에 쓰기 + 키코드 출력 KeyListener를 설명하는 글과 동일한 틀을 사용했습니다. 다른 것은 메인메소드입니다. 메인메소드에 Scanner 클래스를 사용하여 콘솔 창에 문자를 입력하면 프레임 창에 표시되도록 코드를 작성하였습니다. 이 코드를 작성하여 " myFrmae3.area.setText(inputUser); " inputUser에 입력된 문자를 setText 메소드를 통해 area에 표시되도록 하였습니다. import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.Scanner; import javax.swing.JFrame; import javax.swing.JTextA..

JAVA/GUI 2021.07.20

[자바] 콜백(CallBack) - JFrame

콜백(CallBack)을 왜 사용하는가? 특정 조건이 있고, 이 조건을 만족할 때마다 기능을 수행한다고 하자. 콜백을 사용하면 이벤트가 발생하여 특정 조건을 만족시켰을 경우, 콜백 함수를 호출하여 바로 기능을 수행할 수 있다. 콜백 함수는 바로바로 사용할 수 있으며, 조건이 맞는지 틀린지 확인하는 과정을 거치지 않아도 되기에 효율적이다. 만약, 콜백을 사용하지 않고 계속 객체에 접근하는 방식으로 코드를 작성하였다고 하자. 해당 객체에 어떠한 오류가 발생할 경우 그 객체부터 접근하는 과정까지 모두 수정이 필요할 수 있다. 콜백이라는 개념을 사용하면 객체의 주소만 연결시켜주면 바로 기능을 수행할 수 있다. * 이번 글에서는 수업 예제인 콜백을 GUI코드로 예시를 들고, 다음 글에서 GUI를 제외한 콜백 코드..

JAVA/GUI 2021.07.19

[자바] JFrame 이미지 추가하기 - 슈퍼마리오(1)

슈퍼마리오 배경과 캐릭터 이미지 추가하여 프레임 꾸미기 JFrame을 상속받은 MyImage 클래스를 선언 JPanel을 상속받은 MyPanel 내부 클래스를 선언 생성자와 initData, setInitLayout 메소드를 선언 내부 클래스에서 paintComponent 메소드를 오버 라이딩하여, 배경화면과 캐릭터 1, 2, 3을 프레임에 추가 import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; class M..

JAVA/GUI 2021.07.17