File IO 📥 InputStream, OutputStream 📤 상속 관계 java.io.InputStream └ java.io.FileInputStream java.io.OutputStream └ java.io.FileOutputStream read() InputStream으로부터 1byte씩 읽어서 int(4byte)에 담아 반환한다. 더 이상 읽을 것이 없으면 -1을 반환한다. write() int(4byte)에 1byte)씩 담아 OutputStream에 쓴다. 💻 예제 1 📝 소스 코드 public class Main { public static void main(String[] args) { InputStream in = null; OutputStream out = null; try { i..
Anonymous class 익명 클래스는 말 그대로 이름이 없는 Local inner class이다. 이름이 없으므로 생성자로 만들 수 없고, 클래스의 정의와 동시에 인스턴스를 생성한다. 💻 예제 1 📝 소스 코드 Person public class Person { private String name; public Person(String name) { this.name = name.; } public MyReadable createInstance(int age) { MyReadable person = new MyReadable() { @Override public void readInfo() { System.out.println("이름 : " + name); System.out.println("나이 ..
Local inner class 지역 내부 클래스는 블록 내부에서 정의된 클래스이다. 정의가 된 블록(메소드) 내부에서만 사용할 수 있고, 접근 수식어(public, protected, private)는 쓸 수 없다. 외부 클래스의 멤버 변수는 모두 사용 가능하다. 💻 예제 1 📝 소스 코드 OuterClass { localMethod() { LocalClass } } public class OuterClass { private int a = 1; // OuterClass 클래스의 멤버 변수 public void localMethod() { // OuterClass 클래스의 멤버 메소드 int b = 10;// 메소드의 지역 변수 // b = 30;
Nested class (Static inner class) 중첩 클래스는 다른 클래스의 내부에서 멤버로 정의된 클래스이다. Static 키워드가 사용된 내부 클래스와 동일한 것이다. 💻 예제 📝 소스 코드 OuterClass { Nested Class } public class OuterClass { private int val; // 인스턴스 변수 private static int cnt = 1; // 클래스 변수 (static) public OuterClass (int val) { this.val = val; } // static inner class (Nested class) public static class NestedClass { public void displayOuterInfo() { /..
Member inner class 멤버 내부 클래스 : 다른 클래스 내부에서 선언된 클래스 💻 예제 1 📝 소스 코드 OuterClass { InnerClass } public class OuterClass { private int val; public OuterClass(int val) { this.val = val; } // Member inner class 정의 public class InnerClass { private int innerVal; public InnerClass(int val) { this.innerVal = val; } public void printOutVal() { System.out.println("value = " + val); } public void printInVal(..
Inner Class (내부 클래스) Member inner class (멤버 내부 클래스) : 다른 클래스 내부에서 선언된 클래스 Static inner class (static 내부 클래스, Nested Class) : 다른 클래스의 내부에서 static으로 선언된 클래스 Local class (지역 클래스) Local inner class (지역 내부 클래스) : 메소드 내부에서 선언된 클래스 Anonymous class (익명 클래스) : 이름이 없는 Local class Member inner class 보통 상속 관계로 묶을 수 없고 A라는 객체가 생성된 이후에 존재할 수 있는 B객체가 있다고 가정하는 경우, 이때 B를 A의 멤버 내부 클래스로 선언한다. 멤버 내부 클래스를 사용하기 위해서는 ..
Lombok 라이브러리 기본적인 Class setting 을 굉장히 편리하게 할 수 있게 해주는 라이브러리이다. 현재 이클립스 최신 버전인 2021-06에서 Lombok 라이브러리 설치 시 오류가 발생한다. 따라서 오류가 발생하지 않도록 ini 파일을 수정할 것이다. 설치 과정 - 다운로드 파일 https://projectlombok.org/download Download projectlombok.org 위 사이트에 들어가서 lombok.jar 파일을 다운받는다. - lombok.jar 설치 cmd 창에서 lombok.jar 파일이 위치한 곳까지 위치를 이동한 뒤, java -jar lombok.jar 명령어를 입력하여 실행시킨다. lombok.jar 파일을 더블클릭해서 실행시켜도 된다. jar 파일을 ..
Singleton 디자인 패턴 Singleton(싱글톤)이란 인스턴스가 단 1개만 생성되어야 하는 패턴이다. Java를 사용하여 싱글턴을 만드는 방법은 다음과 같다. Singleton public class SingletonTest { private int num; private SingletonTest() { num = 100; } private static SingletonTest instance = null; public static SingletonTest getInstance() { if (instance == null) instance = new SingletonTest(); return instance; } public int getNum() { return num; } public void..
MaxWord 프로그램 설명 여러 문장으로 구성되어 있는 문자열을 입력 받은 뒤, 해당 문자열에서 단어의 개수가 가장 많은 문장을 찾아서 그 문장 내에 있는 단어의 개수와 해당 문장을 출력한다. 문장의 구분은 . ! ? 이고, 단어의 구분은 공백이다. 우선 입력 받은 문자열을 문장으로 구분하여 String 배열 strs에 저장한다. 문장별 단어의 개수를 저장할 int형 배열 nums를 생성한다. StringTokenizer를 이용하여 공백을 기준으로 문장을 자른다. 잘린 단어들의 개수를 아까 생성한 nums 배열에 저장한다. nums 배열에 저장된 값이 가장 크면, 동일한 index를 가지고 참조하는 strs 배열에 저장된 문장의 길이가 가장 길다는 뜻이다. 따라서 nums 배열에 저장된 값을 비교하고 ..
Isogram 프로그램 설명 Isogram 이란 중복된 알파벳이 없는 단어를 말한다. 문자열을 입력 받아 해당 문자열이 isogram 인 경우에는 true를 출력하고, 아닌 경우에는 false를 출력한다. quit 가 입력되면 프로그램을 종료 한다. 우선 문자열 앞 뒤의 공백을 제거하고 대소문자 구분을 하지 않기 위해 모두 소문자로 바꾼다. 이후 중복되는 문자가 있는지 체크한다. 입력 받은 단어를 java 라고 가정한다. 첫 문자인 j 와 그 다음 문자인 a를 비교한다. 그 후 j 와 v를 비교한다. 이렇게 차례대로 비교하여 j 와 맨 마지막 문자인 a 까지 비교가 끝났으면, 이후 a와 a 다음 위치에 있는 문자들을 비교하기 시작한다. 중복 검사를 진행하며 만약 중복되는 문자가 없으면 cnt 값을 1 증..
가위바위보 게임 프로그램 설명 Java 언어를 복습하며 메소드 활용을 최대한으로 하는 가위바위보 게임을 만들었다. 가위(1), 바위(2), 보(3) 세 가지를 비교할 때 논리 연산자를 사용하여 일일이 비교하면 코드의 길이가 너무 길어진다. 따라서 com != (user % 3) + 1 이라는 조건식을 사용하였다. 가위 (1) 는 바위 (2) 에게 진다. 바위 (2) 는 보 (3) 에게 진다. 보 (3) 는 가위 (1) 에게 진다. 이때 왼쪽을 사용자(user), 오른쪽을 컴퓨터(com)라고 가정하자. 예시로 든 가위바위보는 1 ~ 3 까지의 숫자로 이루어져 있어서 사용자가 낸 결과 % 3 연산을 하였다. 1 % 3 = 1 2 % 3 = 2 3 % 3 = 0 연산으로 나온 결과는 컴퓨터가 낸 결과 - 1 ..
jQuery 메소드 정리 클래스 관련 // name이라는 id를 가진 태그에 up이라는 클래스 추가 $('#name').addClass('up'); // name이라는 id를 가진 태그에 down이라는 클래스 제거 $('#name').removeClass('down'); // name이라는 id를 가진 태그에 up이라는 클래스가 없으면 추가, 있으면 제거 $('#name').toggleClass('up'); // item에 down이라는 클래스가 있으면 true, 없으면 false 리턴 $("#name").hasClass('down'); 속성 관련 // 이미지 태그의 src 속성 받아오기 $('img').attr('src'); // 이미지 태그의 src 속성 지정하기 $('img').attr('src',..