Computer Science 29

Java - 인터페이스

Java에서 인터페이스의 특징이라면 추상화보다는 더 설계적 기능을 강조하고 있다는 것과 다중 상속이 가능하다는 것입니다. 여기서 더 설계적이라는 뜻은 추상화의 경우 추상 메소드 이외의 일반 메소드 및 변수를 포함할 수 있지만 인터페이스의 경우 정말 추상 메소드와 상수만을 포함할 수 있다는 것입니다. 위 예와 같이 인터페이스에서는 추상 메소드는 에러가 뜨지 않지만 일반 메소드 Howling() 밑에는 빨간색 줄(에러)이 뜨는 것을 볼 수 있습니다. (*Java 8을 기준으로 default 메소드가 사용가능해지면서 예를 들어 default void Howling(){ System.out.println("왈왈"); } 위와 같이 default를 사용해준다면 인터페이스에서도 메소드의 내용을 채울 수 있게 되었습..

Java - Final

Java 에서 Final은 재정의가 불가능하게끔 즉 2번 이상 할당하려 할 때 오류가 발생하게끔 하는 키워드입니다. 마치 constant 와 같은 역할을 합니다. final int num; 과 같이 변수에 사용할 수도 있고 public final void 메소드명 과 같이 메소드에도 사용됩니다. class에도 사용이 가능한데요, final class 클래스명 과 같이 클래스를 정의하게 된다면 해당 클래스는 다른 클래스가 상속받을 수 없게 됩니다. 즉, 부모 클래스가 되지 못한다는 뜻입니다.

Java - 추상화

추상화에 대해 예제를 통해 알아보겠습니다. 추상화는 마치 설계를 하는 것과 같은 느낌입니다. 구체적인 내용은 하위 클래스에서 정의하고 대략적인 그림만 알려주는 것이 추상화입니다. Java를 공부하면서 확실히 C보다 협업에 최적화되어있다는 느낌을 많이 받네요.. 1 2 3 4 5 6 abstract class Player {//abstract :: 추상 클래스임을 알려줌 abstract void play(String songName); abstract void pause(); abstract void stop(); } Colored by Color Scripter cs 음악 재생 클래스를 구현한다고 가정해봅시다. 그렇다면 3가지 기능 play, pause, stop 기능을 넣을것임을 추상화 클래스에 선언해..

Java - 상속

상속에 대해 예제로 알아봅시다. 꿀팁이 있다면 private 변수에 대한 get,set 메소드를 자동으로 생성해주는 기능이 있다는 것입니다. 우클릭 -> Source -> Generage Getters and Settlers 이후 생성하고자 하는 변수 선택(저의 경우 이미 사용할 변수를 다 선언해놨기 때문에 Select All) 그 결과로 private 변수들에 대한 set(), get() 메소드가 자동으로 생성됩니다. 생성자 또한 메소드 처럼 자동으로 만들어줄 수 있습니다. 우클릭 -> Source -> Generate Constructor using Fields 다음으로 Person class를 상속받을 Student class를 생성해줍시다. (Person class는 추상클래스이기 때문에 추후에 ..

Java - 클래스

클래스에 대한 예제로 2개의 x,y좌표의 중점을 구하는 코드를 짜보겠습니다. 먼저 x와 y의 좌표값이 들어갈 Node 클래스를 생성해줍시다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 public class Node { private int x;//x와 y의 값을 외부에서 바꾸지 못하게 하기 위해 private int y;//private 사용 public int getX() {//public은 외부에서 접근 가능 return x; } public void setX(int x) { this.x=x;//this.x는 위에 private로 정의된 x를 의미 즉, 함수 매개변수로 갖고 온 x의 값을 위 private x..

MATLAB - 함수

*cd는 유체저항 함수와 스크립트 차이 제일 오른쪽 메모리 공간에 표시되는 것이 단순 함수의 반환값이 ans 변수 안에 표시된다. 앞서 함수와는 다르게 메모리 공간에 사용한 변수의 값이 모두 나타난다. help 함수명 입력 시 함수에 대한 설명을 달아놓은 주석이 뜬다. lookfor 키워드 를 입력하면 키워드와 관련이 있는(설명주석에 키워드가 있는) 함수가 함수 설명가 함께 나타난다. 목적에 맞는 함수가 이미 존재하는지 살펴볼 때 사용하면 좋은 기능이다. 함수의 반환값이 여러개인 경우 맨 위 기본 구성에서 반환용 변수 선언 부분만 조금 바뀐다.

Java - 배열

배열 선언 시 기본 구조입니다. int [] 을 써줌으로써 배열을 사용할 것임을 선언하고 그 다음에는 배열명, (new 연산자), 배열 크기 순으로 선언해줍니다. 배열은 0부터 시작하기 때문에 위 예시에서 첫번째 배열의 index는 0이고 마지막 배열의 index는 99가 됩니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import java.util.Scanner; public class Tutorial4 { public static int max(int a, int b) { return a>b?a:b; } public static void main(String[] args) { Scanner sc = new Scanner(System...

Java - 문자열 함수

간단한 Java 문자열 함수에 대해 알아봅시다. 문자열의 제일 마지막에 있는 문자를 알려주는 함수입니다. 1 2 3 4 5 6 7 8 9 10 public class Main { public static char function(String input) { return input.charAt(input.length()-1);//input에 들어있는 문자열 중 가장 마지막에 있는 문자를 가져옴 } public static void main(String[] args) { System.out.println("Hello World의 가장 마지막 단어는 "+ function("Hello World")); } } Colored by Color Scripter cs charAt(input.length()-1)에서 i..

Java - 사용자 정의 함수 (메소드)

Java 에서의 함수 즉, 메소드에 대해 알아보자. 기본적인 Java에서의 메소드 선언 방식은 위와 같다. 반환타입, 메소드명(함수명), 매개변수 순으로 입력을 해주면 된다. C언어와 비슷한 형태로 Main 메소드 위에다가 함수를 선언해준다. 단, C언어와의 차이점이라면 선언할 때 본문을 같이 입력해줘야 한다는 것이 있다. 즉, 위와 같은 꼴로는 에러가 뜬다. C언어에서는 가능하지만 Java에서는 불가능하다.

Java - 파일입출력

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class Main { public static void main(String[] args) { File file = new File("input.txt"); try {//파일을 찾지 못했을 경우 예외처리문 Scanner sc = new Scanner(file); while(sc.hasNextInt()) {//만약 다음 정수가 존재한다면 System.out.println(sc.nextInt()*100); } sc.close(); } ca..