1. 자바에서 상속(Inheritance)이란?

 

상속은 객체 지향 프로그래밍에서 매우 중요한 개념 중 하나입니다. 상속이란, 이미 존재하는 클래스에서 필요한 부분을 그대로 물려받아 새로운 클래스를 만드는 것을 말합니다. 이렇게 상속받은 클래스는 원래의 클래스의 모든 멤버를 가지고 있으면서, 추가로 필요한 멤버를 가질 수 있습니다.

 

상속의 대표적인 예시로는 '동물' 클래스와 '개', '고양이' 클래스가 있습니다. '개'와 '고양이' 클래스는 '동물' 클래스에서 필요한 부분을 물려받아 새로운 클래스를 만든 것입니다. 이렇게 만들어진 '개'와 '고양이' 클래스는 '동물' 클래스의 모든 멤버를 가지면서, 추가로 필요한 멤버를 가질 수 있습니다.

 

2. 자바에서 상속의 구현

 

자바에서 상속을 구현하는 방법은 매우 간단합니다. 상속받고자 하는 클래스의 이름 뒤에 'extends' 키워드를 붙이고, 상속하고자 하

는 클래스의 이름을 적어주면 됩니다. 예를 들어, '개' 클래스가 '동물' 클래스를 상속받는다면, 다음과 같이 작성할 수 있습니다.

 
-예제 코드-
 
class 동물 {
  String 이름;
  int 나이;
  
  void 소리내기() {
    System.out.println("소리를 내다.");
  }
}

class 개 extends 동물 {
  void 짖기() {
    System.out.println("멍멍!");
  }
}

위의 코드에서 '개' 클래스는 '동물' 클래스를 상속받았습니다. 따라서 '개' 클래스는 '동물' 클래스의 모든 멤버를 가지고 있으며, '동물' 클래스에서 정의한 '소리내기' 메서드를 그대로 사용할 수 있습니다. 또한, '개' 클래스에는 '짖기' 메서드가 추가로 정의되어 있습니다.

 

3. 상속의 장점

 

상속의 가장 큰 장점은 코드의 재사용성입니다. 이미 만들어진 클래스를 상속받아 필요한 부분만 추가하여 새로운 클래스를 만들기 때문에 코드를 반복해서 작성할 필요가 없습니다. 또한, 기존 클래스의 수정 없이 새로운 기능을 추가할 수 있습니다.

또한, 상속은 객체 지향 프로그래밍의 다형성(Polymorphism) 개념을 가지고 있습니다.

 


먼저 귀하의 리눅스 우분투에 java가 올바르게 설치 되었는지 확인 하였다면 (

 

이제 본격적으로 리눅스 터미널에서 java 파일을 만들고 컴파일 해보자.




    ## 먼저 간단히 텍스트 편집기를 이용하여 텍스트 출력 형태의 간단한 java 소스 코드 파일을 만들어 보자.

    $ gedit hello_world.java
   
        ! 만일 gedit 가 설치 되어 있지 않다면
       
            $ sudo apt install gedit
       
        ! 혹은

            $ nano hello_world.java
             (nano: 나노 에디터)   

 

hello_world.java

class hello_world {
    public static void main( String[] args ) {
        System.out.println( "Hello world" );
    }
}


 

 

 ## 만든 java 파일을 컴파일 한다.

    $ javac hello_world.java
      (javac: java 컴파일 명령)   

    ## 컴파일이 정상적으로 완료 되었다면 해당 디렉터리에 hello_world.class 클래스 파일을 생성 되었을 것이다.
       그것을 실행토록 해보자.


    $ java hello_world
        ( 파일명.class를 붙이지 않는다.)

    ## "Hello world"가 뜨고 리턴 하였다면 컴파일과 실행에 성공한 것이다.

 



 

 

 

 

 

 



리눅스를 활용하게 되면 오픈소스와 레파시토리로 인하여 프로그래밍과 정말 가까워 진다.

그렇기에 자바 및 파이썬 그리고 c 언어 까지 컴파일 및 실행이 무척이나 빠르다.

또 그러므로 BASH 스크립트를 이용하여 이에 대한 과정을 2차 프로그래밍 하여 소스 패키지로써 재배포가 가능한 것이다.

하지만 물론 기초적으로 처음 설치한 리눅스에 java 클라이언트가 설치되어 있을지는 미지수 이다.

그렇기 때문에 먼저 java가 설치 되어 있는지 확인이 필요하다.

    ## 터미널을 열고서 java를 실행해 본다.

    $ java

다음과 같은 설명문이 나오면 java가 설치 되어 있음을 확인한 것이다.



하지만 이와 같은 화면은 oracle-java 가 아닌 openjdk 이다.

본 필자도 마찬가지고 인터넷 에서의 기초 전문가들도 대부분 openjdk 보다는 oracle-java를 설치 하기를 권고 하고 있다.

그렇다면 설치되어 있는 java 클라이언트가 openjdk 인지 아니면 oracle-java 인지 확인이 필요할 것이다.

    ## java 클라이언트의 특성과 버전을 확인한다.

    $ java -version

    ## 만일 다음과 같은 화면이 나온다면 openjdk가 설치되어 있는 것이다.

    openjdk version "9-internal"
    OpenJDK Runtime Environment (build 9-internal+0-2016-04-14-195246.buildd.src)
    OpenJDK 64-Bit Server VM (build 9-internal+0-2016-04-14-195246.buildd.src, mixed mode)

    ## 만일 다음과 같은 화면이 나온다면 oracle-java 가 설치되어 있는 것이다.

    java version "9-ea"
    Java(TM) SE Runtime Environment (build 9-ea+126)
    Java HotSpot(TM) 64-Bit Server VM (build 9-ea+126, mixed mode)
 

만약 openjdk가 설치되어 있다면 oracle-java로 클라이언트를 바꾸어 보자.
이는 다른 운영체제 처럼 굳이 Oracle 홈페이지를 방문할 필요 없이 '레파시토리'를 등록하여 자유롭게 다운받아 사용할 수 있을 것이다.

openjdk를 삭제하고 레파시토리를 등록한 다음 설치 아카이브정보를 업데이트 하고 oracle-java9을 설치 하도록 하자.


 

 user@user~$

sudo apt-get purge openjdk*   
sudo apt-add-repository ppa:webupd8team/java   
sudo apt update   
sudo apt install oracle-java9-installer   
java -version


Loading Captcha...
If it doesn't load, please disable Adblock!

체크시 자동으로 본 사이트에 대한 자원 활용(채굴) 지원이 이루어 지고 '복사 버튼' 이 활성화 됩니다.


   
   

다음 페이지 - 리눅스 우분투 터미널에서 본격적으로 java를 컴파일 및 실행하기 (예제 파일 포함) 바로가기

   

도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         


Loading Captcha...
If it doesn't load, please disable Adblock!

별 다른 절차 없이 바로 위의 한 번의 체크 만으로  기기의 성능을 기반으로 하여 본 블로그에 아주 잠깐 채굴 지원 하실 수 있습니다.


비트코인 - BTC 지원 :


리플 - XRP 지원 :




인터넷에서 JAVA 프로그래밍에 대한 예제를 찾아서 막상 컴파일 해 보면 안되는 경우가 허다 할 것이다.

그 요인은 전체적으로 두 가지 요인으로 볼 수 있는데

하나는 소스 구성이 이전 버전으로 구성 되어 있는 것이며

또 하나는 파일의 인코딩이 다르기 때문이다.

먼저 인코딩을 설명 한다면 JAVAC(JAVA 컴파일러)는 기본적으로 UTF-8을 우선적으로 지원하기 때문이다.

만일, 해당 소스 파일이 'EUC-KR'로 되어 있다면 JAVAC가 인식하지 못하면서 컴파일에 실패 한다.

먼저 만약 소스 코드 구성은 최신 버전에 맞지만 인코딩만 다를 경우를 컴파일을 시도해 보자.


< 해당 'a.java' 소스 파일이 'EUC-KR'인코딩일 경우 >

$ JAVAC -encoding euc-kr a.java
        (euc-kr : 인코딩 지정)

< 컴파일에 성공했는지 확인해 본다. >

$ ls

a.java a.class




< 이번에는 이전 버전의 소스코드와 인코딩이 다른 경우 두가지를 모두 포함하고 있는 경우를 해결해 볼 것이다. >


그러는 이유는 이 방법에는 순서가 있기 때문이다.


물론 프로그래머 스스로가 소스를 수정하여 해결할수도 있겠지만 javac는 이전 버전의 소스 형식도 잡아주는 기능이 있기 때문에 그것을 최대한 활용 하는 것이 훨씬 더 수월 할 것이다.


그리고 이번에는 본 필자가 소스 파일을 제공해 줄 것이다.


a.java


< 위의 파일을 직접 다운 받거나 본 블로그에서 제공하는 예제 파일을 터미널에서 wget을 활용하여 원하는 폴더에  다운로드 한다. >

$ wget http://cosmosproject2015.tistory.com/attachment/cfile21.uf@246C454257AD51422E2D22.java -O a.java


// 받은 파일을 a.java로 변경한다.

< 다운로드 되었는지 확인한다.>


$ ls


a.java


< 먼저 해당 java 파일에 대한 타겟 버전을 설정한다. >

$ javac -target 1.4 a.java
       (타겟 옵션 : 버전 1.4)

javac: target release 1.4 conflicts with default source release 1.9

    * 현재 버전 1.9에 의해 1.4 문제를 타겟 배포 했다는 문구가 출력 된다.

< 이제 인코딩과 컴파일을 같이 실행한다. > >>

$ javac -encoding euc-kr a.java

< 실행해 본다. > >

$ java a


Hello World
성공했습니다!


* 위와 같이 나온다면 성공한 것이다.


도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


그리고 글에 부족한 점이 있거나 틀린 점, 더 궁금한 부분이 있는 것 같다면 꼭 댓글로 알려 주시 감사 하겠습니다.

         




인터넷에서 JAVA 프로그래밍에 대한 예제를 찾아서 막상 컴파일 해 보면 안되는 경우가 허다 할 것이다.

그 요인은 전체적으로 두 가지 요인으로 볼 수 있는데

하나는 소스 구성이 이전 버전으로 구성 되어 있는 것이며

또 하나는 파일의 인코딩이 다르기 때문이다.

먼저 인코딩을 설명 한다면 JAVAC(JAVA 컴파일러)는 기본적으로 UTF-8을 우선적으로 지원하기 때문이다.

만일, 해당 소스 파일이 'EUC-KR'로 되어 있다면 JAVAC가 인식하지 못하면서 컴파일에 실패 한다.

먼저 만약 소스 코드 구성은 최신 버전에 맞지만 인코딩만 다를 경우를 컴파일을 시도해 보자.


< 해당 'a.java' 소스 파일이 'EUC-KR'인코딩일 경우 >

$ JAVAC -encoding euc-kr a.java
        (euc-kr : 인코딩 지정)

< 컴파일에 성공했는지 확인해 본다. >

$ ls

a.java a.class




< 이번에는 이전 버전의 소스코드와 인코딩이 다른 경우 두가지를 모두 포함하고 있는 경우를 해결해 볼 것이다. >


그러는 이유는 이 방법에는 순서가 있기 때문이다.


물론 프로그래머 스스로가 소스를 수정하여 해결할수도 있겠지만 javac는 이전 버전의 소스 형식도 잡아주는 기능이 있기 때문에 그것을 최대한 활용 하는 것이 훨씬 더 수월 할 것이다.


그리고 이번에는 본 필자가 소스 파일을 제공해 줄 것이다.


a.java


< 위의 파일을 직접 다운 받거나 본 블로그에서 제공하는 예제 파일을 터미널에서 wget을 활용하여 원하는 폴더에  다운로드 한다. >

$ wget http://cosmosproject2015.tistory.com/attachment/cfile21.uf@246C454257AD51422E2D22.java


// 받은 파일을 a.java로 변경한다.

< 받은 파일을 a.java로 변경한다. >


$ mv cfile21.uf@246C454257AD51422E2D22.java a.java


< 제대로 변경 되었는지 확인해 본다. >


$ ls


a.java


* a.java 가 있다면 다운로드와 변경에 성공한 것이다.


< 먼저 해당 java 파일에 대한 타겟 버전을 설정한다. >

$ javac -target 1.4 a.java
       (타겟 옵션 : 버전 1.4)

javac: target release 1.4 conflicts with default source release 1.9

    * 현재 버전 1.9에 의해 1.4 문제를 타겟 배포 했다는 문구가 출력 된다.

< 이제 인코딩과 컴파일을 같이 실행한다. > >>

$ javac -encoding euc-kr a.java

< 실행해 본다. > >

$ java a


Hello World
성공했습니다!


* 위와 같이 나온다면 성공한 것이다.


도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다.


이전 포스팅 에서는 간단하게 문자를 출력 시키는 JAVA 프로그램을 만들어 보았다.

이번에는 변수와 상수를 배우고 지정하여 그것을 문자와 함께 같이 합하여 출력해 보도록 할 것이다.

먼저, 변수에 대해 말해 보자면

간단히 말해서 문자에 문자를 지정하여 사용하는 것이고

    예) when = "Saturday night";  

상수는 그것이 숫자로 활용 되어서 문자에 숫자를 지정하는 것이라고 할 수 있다.

    예) clock = 21;

여기서 다른 점은 변수 지정은 "_" 가 들어 가지만 상수 지정은 숫자 그 자체를 사용하기 때문에 그것이 필요치 않다는 것이다.

자 그렇다면 지금부터 본격적으로 프로그래밍을 해보도록 하자.




mybaby.java

// 클래스 이름을 선언 한다.
class mybaby {
    public static void main( String[] args ) {
        // 변수 지정        
        String baby = "My baby old is ";
       
        // 상수 지정
        int old = 3; 

        // 지정한 변수와 상수 그리고 문자를 같이 출력한다.
        System.out.println( baby + old + " years." );
    }
}

변수와상수.java





// 저장하고 컴파일 & 실행 해 본다.

    $ javac mybaby.java

    $ java mybaby


    - 다음과 같이 출력 되는 성공한 것이다.

    My baby old is 3 years.



도움이 되셨다면 '♡' 버튼을 꼭눌러 주시면 감사 하겠습니다. ^_^



+ Recent posts