JAVA 14

자바 GUI 텀프 '행렬식과 역행렬 계산기' - 공부하는 도비

자바 GUI를 활용한 행렬식과 역행렬 계산기입니다. 행렬 크기를 입력후, 그 크기에 맞게 행렬 요소를 입력해주면 그에 따른 역행렬이 계산됩니다. 아래 처럼 숫자가 아닌 문자를 입력했을 땐, 역행렬이 계산되지 않습니다. 만약, 아래와 같은 오류 메시지를 출력하기 싫다면 에러 처리를 해주시면 됩니다. 또한, 역행렬이 없는 행렬이 입력되면 "역행렬이 존재하지 않습니다."가 추가로 출력됩니다. 아래에 전체 코드를 첨부해두겠습니다. import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Matrix extends JFrame implements..

JAVA/TermProject 2023.06.18

자바 GUI 텀프 '아스키코드 및 유니코드 변환기' - 공부하는 도비

자바 GUI를 활용한 아스키코드와 유니코드 변환기입니다. 아스키코드표도 파일을 저장하여 경로를 입력하면, 출력이 됩니다. 아래에 전체 코드와 아스키코드표 사진을 첨부해두겠습니다. 위 사진의 "이미지 파일 경로"에 아스키코드표 사진의 경로를 입력해주세요. (Ex. "C:/Desktop/Ascll_Code.png") import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class AskiUniConvrtr extends JFrame { private JTextField inputTextField; private JButton ascicodeButt..

JAVA/TermProject 2023.06.18

자바 static 변수와 static 메소드 - 공부하는 도비

오늘은 자바의 static 변수와 static 메소드에 대해 알아보려고 합니다. 1. static 변수 변수 앞에 static이라는 키워드를 붙이면, 자바는 메모리 할당을 딱 한 번만 하게 됩니다. 따라서 메모리 사용에 이점이 있죠. 따라서 static으로 선언한 변수를 참조할 땐, 같은 곳의 메모리 주소를 바라보기 때문에 static 변수의 값을 공유할 수 있습니다. 아래 예제를 통해 이 말이 무엇인지 설명하겠습니다. 함수를 선언하고 객체가 해당 함수를 참조할 때마다 카운터가 올라가는 코드를 구현한다고 가정해 보겠습니다. - static을 사용하지 않고 구현을 하면 다음과 같은 결과를 얻게 됩니다. // non-static 변수 class Counter { int count = 10; Counter()..

JAVA 2023.01.30

JDK 다운, PATH 환경 설정 - 공부하는 도비

이클립스를 사용하려면 우선 사용자 컴퓨터에 JDK 설치와 PATH 환경 설정이 되어있어야 합니다. * JDK 설치 경로 https://www.oracle.com/kr/java/technologies/downloads/#java19 Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts. www.oracle.com (JDK17과 19의 차이) https://www.infoworld.com/article/3653331/jdk-19-the-new-features-in-java-19.html JDK 19..

JAVA 2023.01.26

자바 상속 기초 4) 메소드 overloading - 공부하는 도비

클래스의 메소드를 선언할 때, 같은 메소드지만 다른 매개 변수를 가지게 하는 것을 메소드 overloading이라고 합니다. 바로 예제 코드를 보겠습니다. package Inferitance; class Print { int a, b; int c = 0; public void Setnumber(int a, int b) { this.a = a; this.b = b; } public void Setnumber(int a, int b, int c) { this.Setnumber(a, b); this.c = c; } public void Sum() { System.out.println(a + b + c); } public void Mul() { if (c == 0) { System.out.println(a * ..

JAVA 2022.04.02

자바 상속 기초 3) 메소드 overriding - 공부하는 도비

자바의 상속을 통해서 상위 클래스의 기능을 하위 클래스로 물려줄 수 있었습니다. 하지만, 상속을 하게 되면 하위 클래스는 상위 클래스의 메소드 변경 없이 단순 기능 추가만 할 수 있습니다. 만약 그래야 한다면 제약이 상당할 것입니다. 이런 제약을 벗어나기 위해서 하위 클래스가 부모 클래스의 기본적인 동작을 변경할 수 있어야 하는데 이런 맥락에서 도입된 기능이 메소드 오버 라이딩(overriding)입니다. 메소드 오버 라이딩은 재정의, 새롭게 정의한다는 뜻을 가지고 있습니다. 즉, 부모 클래스에 선언한 메소드를 자식 클래스에서 동일한 메소드명으로 재 정의 해주면, main에서 이 메소드를 호출했을 때, 부모 클래스가 아닌 자식 클래스에 있는 메소드를 호출하게 끔하는 것입니다. package Inferit..

JAVA 2022.04.02

자바 상속 기초 2) super - 공부하는 도비

지난 피드에서 상속이 무엇인지, 왜 필요한지에 대해 설명했습니다. 2022.04.02 - [자바] - [자바] 상속 기초 1) - 공부하는 도비 [자바] 상속 기초 1) - 공부하는 도비 오늘은 상속 기본 개념을 알아보겠습니다. 우리가 어떤 프로그램 소스 파일을 가졌고, 그 소스 코드의 기본 동작에다가 추가하고 싶은 기능이 있다고 가정해볼게요. 가장 쉬운 방법은 소스 코드 yang-wistory1009.tistory.com 자바는 생성자라는 초기화 작업을 가능케 하는 특수한 메소드가 있는데, 상속을 하다 보니 부모 생성자와 자식 생성자 부분에서 문제가 생긴다는 걸 발견했습니다. 우선, 무슨 문제가 발생하는 지 코드를 통해서 알아보겠습니다. 위의 코드를 실행 시키면, 아래와 같은 오류가 발생합니다. 부모 ..

JAVA 2022.04.02

자바 상속 기초 1) - 공부하는 도비

오늘은 상속 기본 개념을 알아보겠습니다. 우리가 어떤 프로그램 소스 파일을 가졌고, 그 소스 코드의 기본 동작에다가 추가하고 싶은 기능이 있다고 가정해볼게요. 가장 쉬운 방법은 소스 코드 자체를 수정하는 방법입니다. 하지만, 코드의 수정이 불가능한 경우가 있고. 만약 추가적인 기능을 넣어서 코드를 새로 짜더라도, 다른 사람은 그 기능이 필요 없다고 생각되어 빼버릴 수 도 있습니다. 이때 추가했던 기능의 매개변수라던지 클래스 등이 여전히 남아 있어 오류를 발생시킬 가능성이 커지게 됩니다. 이런 코드의 오류를 줄이기 위해서 나온 개념이 "상속"입니다. 기존의 객체를 그대로 유지하면서 어떤 기능을 추가하는 방법을 구상하다가 나온 개념이 상속입니다. 즉, 기존의 객체를 수정하지 않으면서 새로운 객체가 기존의 객..

JAVA 2022.04.02

자바 생성자(constructor)와 초기화 - 공부하는 도비

객체 지향 프로그래밍도 초기화에 해당하는 기능이 제공되는 데 이것을 "생성자(constructor)"라고 합니다. 생성자를 쓰고, 쓰지 않고를 코드로 비교해보겠습니다. 형광색으로 표시된 곳이 두 코드의 차이점을 나타냅니다. 생성자를 사용하지 않을 때는, 직접 setNumbers라는 메소드에 매개변수로 값을 전달해야 했지만, 생성자를 사용했을 때는 Calculator class 의 객체 c1(c2)를 생성하면서 값을 초기화해주는 걸 볼 수 있습니다. 조금 더 자세히 살펴보면, Calculator_1 과 동일한 이름을 가진 메소드 명을 지정하면 그게 생성자가 됩니다. 생성자 메소드는 어떤 메소드 보다 제일 먼저 실행되기 때문에, 초기화 작업이 가능하게 되는 것입니다.

JAVA 2022.03.04

자바 객체 지향 기본 동작 원리 (클래스, 인스턴스, 객체) - 공부하는 도비

자바는 객체지향 언어로 알려져 있습니다. 객체지향 기능을 사용하지 않고도 프로그램을 작성할 수 있지만, 가독성 좋고 실용적인 코드는 작성할 수 없습니다. 오늘 피드에서는 왜 객체지향이라는 게 필요한지와 그와 관련된 용어 정리를 해보겠습니다. 이전 피드에서는 메소드의 중요성과 필요성에 대해서 설명했습니다. 메소드에 대해 궁금하신 분들은 아래 링크를 따라가 주세요~! 2022.03.03 - [자바] - [자바] 메소드(method) - 공부하는 도비 [자바] 메소드(method) - 공부하는 도비 프로그램을 작성하다 보면 특정 연산을 중복해서 여러 번 사용할 때도 있습니다. 예를 들어, '+, -, *, /' 연산을 해주는 코드가 3번 필요하다면, 아래 코드처럼 비 효율적인 방법으로 실행해야 합 yang-w..

JAVA 2022.03.04