본문 바로가기

728x90

전체 글

[15] Java를 마치며... 이렇게 다소 길어졌던 자바 공부가 끝났습니다. Java의 경우 클래스를 이용하는 매커니즘이 많이 들어가 있어서 처음 보는 사람에게는 다소 길고 어렵게 다가왔을 수도 있을 것 같습니다. C#을 이해하기 위한 개념의 발판이 된 것 같아 의미있는 공부였습니다. 실제로 코딩을 해보면 어떤 코딩을 하냐에 따라 다르겠지만, 프로그래머스 같은 곳에서 코딩 테스트를 보면 문자열을 다루거나 알고리즘 라이브러리를 많이 이용해야 한다는 느낌을 받았습니다. 실무에서는 또 다른 스킬들이 필요하겠죠. 이런 것들은 추후 필요하다면 따로 알아보겠습니다. 이제부터는 알고리즘, 컴퓨터 구조, C#, 유니티를 공부할 예정입니다. C#을 주로 할 것 같고, 유니티나 알고리즘, 컴퓨터 구조의 경우는 무리가 되지 않는 선에서 조금씩 해보도록 .. 더보기
[14] 파일 분할 대규모 프로그램을 만들 때는 여러 사람이 같이 코드를 작성합니다. 이럴 경우 분할된 채로 파일을 만들 것입니다. 작성이 완료되면 분할된 파일을 엮어 프로그램을 만듭니다. 이번 페이지에서는 분할해서 작성한 파일을 다른 프로그램에서 사용하는 법을 알아보겠습니다. 분할된 파일 실행 2개의 클래스 파일을 같은 폴더에 넣고 실행시키면 프로그램을 실행할 수 있습니다. 패키지 파일을 분할해서 작성하다 보면 같은 이름의 클래스 파일이 생길 수 있습니다. 이 경우, 각각의 파일을 수정하지 않고 폴더만 다르게 해주면 폴더명을 사용해 다룰 수 있습니다. 이런 방식을 패키징이라고 합니다. 패키지 사용 방법 먼저 작업 폴더에 새로운 파일을 하나 만듭니다. 그리고 그 폴더에 소스파일을 생성하고 코드의 맨 위에 package 00.. 더보기
[13] 클래스 계층과 다중 상속 앞서 Java에서 클래스 다중 상속은 안된다고 했습니다. 다중 상속을 받고 싶을 때는 인터페이스를 사용합니다. 다중 상속 클래스는 2개 이상의 인터페이스를 구현할 수 있습니다. 그에 따라 구현한 인터페이스에 있는 메소드를 모두 오버라이드 해야 합니다. 인터페이스 확장 인터페이스는 클래스가 확장하는 것처럼 확장할 수 있습니다. 확장에 쓰이는 인터페이스를 슈퍼 인터페이스, 확장으로 새로 만들어지는 것을 서브 인터페이스라고 합니다. 추상 클래스와 인터페이스를 사용하면 많은 클래스를 한꺼번에 제어할 수 있기 때문에 대규모 프로그램을 만들 때 도움이 됩니다. 더보기
[12] 인터페이스 인터페이스 클래스 키워드 대신 interface를 사용합니다. 인터페이스에는 어떤 제한자도 사용하지 않습니다. 인터페이스의 필드는 상수, 메소드는 추상 메소드가 됩니다. 인터페이스 타입 배열도 선언할 수 있습니다. 인터페이스 구현 인터페이스를 클래스와 조합해서 사용하는 것을 인터페이스를 구현한다고 합니다. 인터페이스를 구현할 때는 인터페이스에 선언된 메소드를 전부 클래스에서 정의해야 합니다. 인터페이스형 배열 인터페이스 타입도 배열로 선언할 수 있고 인터페이스를 구현한 클래스라면 인터페이스 배열에 대입될 수 있습니다. 이렇게 대입하고 메소드를 호출하면, 각 객체의 클래스에 맞는 함수들이 호출됩니다. 인터페이스에 선언된 메소드는 추상 메소드임을 기억하시기 바랍니다. 인터페이스를 구현한 모든 클래스는 추상 .. 더보기
[11] 추상 클래스 추상 클래스 클래스 선언시 abstract가 들어간 클래스를 말합니다. 추상 클래스는 객체를 생성할 수 없습니다. 따라서, 서브 클래스를 만든 후 객체를 생성해야 합니다. 이렇게 객체를 생성하면, 추상 클래스에 정의된 메소드를 서브 클래스에서 반드시 오버라이딩 해줘야 합니다. 추상 클래스의 서브 클래스는 반드시 특정 메소드를 갖게 되는 것 입니다. 이 성질을 이용하면, 각 클래스의 객체들을 모아서 관리할 수 있게 되므로 이해하기 쉬운 코드를 작성할 수 있다는 것이 추상클래스의 장점이라고 할 수 있습니다. instanceof 연산자 이 연산자를 사용하면 왼쪽에 있는 객체가 오른쪽에 있는 클래스와 타입이 같은지를 알 수 있습니다. 결과값으로 두 클래스의 타입이 같으면 1, 다르면 0을 갖습니다. 더보기
[10] Object 클래스 슈퍼 클래스는 여러 개의 서브 클래스를 만들 수 있습니다. 하지만, Java에서는 여러 클래스를 다중상속 받을 수 없습니다. 클래스를 만들 때, 상속을 받지 않으면 자동으로 그 클래스는 Object클래스를 상속 받습니다. 따라서, 모든 클래스는 Object클래스를 상속 받는 것입니다. Object 클래스를 상속받으면 쓸 수 있는 메소드 https://docs.oracle.com/javase/6/docs/api/ Java Platform SE 6 docs.oracle.com 각 메소드는 클래스에 따라 다른 내용으로 오버라이딩되는 경우도 있으니, 확인하고 사용해야 합니다. 더보기
[9] 오버라이딩 오버라이딩 슈퍼 클래스의 메소드를 서브 클래스에서 같은 이름, 같은 인수 타입 & 개수로 새롭게 정의하는 기능을 말합니다. 이때, 서브 클래스 객체에서 해당 메소드를 호출하면, 서브 클래스에서 정의한 메소드를 호출합니다. 슈퍼 클래스 객체로 서브 클래스 객체 다루기 서브 클래스 객체는 슈퍼 클래스 변수로 다룰 수 있습니다. 이 경우 자신의 객체의 타입과 맞는 메소드를 호출할 수 있습니다. 하지만, 서브 클래스에서 정의한 메소드는 서브 클래스 객체에서 이용할 수 없게 됩니다. 이렇게 하면 배열로 변수를 만들어 객체를 관리할 수 있게 됩니다. 같은 이름의 멤버 사용하기 위에서 서브 클래스 객체는 자신의 메소드를 호출한다는 것을 알았습니다. 그러면, 같은 이름의 멤버가 있을 경우 서브 클래스에서 슈퍼 클래스의.. 더보기
[8] 상속 다른 언어와 같이 Java에도 상속이 있습니다. 상속 기존의 클래스를 바탕으로 새로운 클래스를 만드는 행위를 말합니다. Java에서는 이를 "클래스를 확장한다"라고 표현합니다. 상속을 하는 클래스를 "슈퍼 클래스", 상속을 받는 클래스를 "서브 클래스"라고 합니다. 상속하기 상속을 하기 위해서는 아래와 같이 extends 키워드를 사용합니다. 서브 클래스 객체 생성하기 상속받은 클래스의 객체를 생성하는 방법은 일반 클래스의 객체를 생성하는 것과 같습니다. 이렇게 생성된 객체는 Animal과 Herbivore의 멤버를 모두 갖습니다. 따라서 Animal의 메소드도 사용할 수 있습니다. 생성자 호출 상속된 클래스를 호출하면 생성자는 상속되지 않지만, 서브 클래스의 생성자보다 먼저 슈퍼 클래스의 인수없는 생성.. 더보기

728x90