Shell Script( 쉘 스크립트 ) for 문 사용법



for 문 기본 사용 법



쉘에서 for문 사용하는 방법에 대해 알아보겠다.

for문은 일정 조건 동안 실행을 반복적으로 수행 하는 구문이다.

일단 예제부터 확인해 보겠다.


#! /bin/ksh


for i in 1 2 3 4 5

do

        echo "$i"

done


예제의 설명은 1부터 5까지 화면에 출력하는 문이다.

즉 5회 반복 구문이다.


for i in 1 2 3 4 5 ==> 1부터 5까지 i에 담는다.

do               ==> 아래 부터 실행 문

echo "$i"  ==> echo는 화면 출력이며 $i는 i 변수 값을 나타 낸다.

done            ==> for문의 종료를 나타낸다.




 for [변수] in [반복 조건]

 do

      [실행문]

 done

 

이상으로 쉘에서 for 문 사용법에 대해 알아봤습니다.

도움이 되셨나요?



반응형

자바 this 와 super



this?


this를 사용 하여 클래스 내에 맴버 변수나 메소드를 가리킬 수 있다.

다음 예를 보자


package sample;


public class human {

protected int age;

private String name;

private String job;

public void setHumanInfo( int age, String name, String job)

{

this.age = age;

this.name = name;

this.job = job;

}

}


클래스의 맴버 변수 명이 age 인데 setHumanInfo 함수 인자 값 역시 age 이다.

둘다 age 값인데 어떤게 맴버 변수이고 어떤게 인자인지 구분할 길이 없다.

이럴때 쓰이는 것이 this 인데 this를 쓰면 클래스의 맴버 변수를 가리킨다.

또한 this는 맴버 함수도 가리킬 수 있다. 


super?


super를 사용 하여 상위(부모)클래스 내에 맴버 변수나 메소드를 가리킬 수 있다.

이때 상위 클래스의 접근 범위가 public 이나 protected로 되어 있어야 접근이 가능하다.

위에 human 클래스에 age는 protected로 접근 범위가 설정 되어있다.


다음은 human 클래스를 상속한 korean 클래스의 예제이다.


package sample;


public class korean extends human {

int age;

public void setAge(int age){

super.age = 1;

this.age = 2;

System.out.println("super.age : " + super.age );

System.out.println("this.age : " + this.age );

System.out.println("age : " + age );

}

}


[결과]

super.age : 1

this.age : 2

age : 10


korean 클래스는 human을 상속 했기 때문에 

super.age는 human의 맴버 변수

this.age는 korean의 맴버 변수


이로써 this, super에 대한 사용방법에 대해 알아봤습니다.

궁금한 점 있으면 댓글 달아주시면 답변 드리겠습니다.

도움이 되셨나요?



반응형

자바 함수 오버라이딩(Overriding)



함수 오버라이딩(Overriding)란



함수 오버라이딩이란 상속시 부모의 클래스 함수를 재 정의 하는 것을 의미 한다.

오버로딩과 명명이 비슷해 혼동이 될 수 있는데 오버로딩은 똑같은 함수 명에 인자나 리턴값 수나 형식을 달리해서

만드는 것을 뜻한다.


[부모 클래스]

package sample;


public class human {

public void introduce()

{

System.out.println("I`m human");

}

}


[자식 클래스]

package sample;


public class korean extends human {

public void introduce()

{

System.out.println("I`m Korean");

}

}


부모인 human 클래스의 introduce 함수를 자식인 korean 클래스가 상속 받아서 다시 재정의 하고 있다.


[사용 예제]

package sample;


public class sample {

public static void main(String[] args) {

    korean k = new korean();

   human h = new human();

   

   k.introduce();

   h.introduce();

}

}



[결과]

I`m Korean

I`m human


자식 클래스인 korean이 부모 클래스의 함수를 재정의 하여 결과 값이 다르게 출력 되는 것을 확인 할 수 있다.


이상으로 오버라이딩에 대해 설명 드렸습니다.

도움이 되셨나요?



반응형

자바 상속(Inheritance) 사용법



상속(Inheritance)란



클래스에서 상속이란 기존에 만들어 놓은 클래스를 그대로 사용 하기 위해 쓰여진다.

상속 받는 클래스는 부모 클래스의 기능을 모두 사용 할 수 있다.

예제를 통해 이해를 도와 보자 아래와 같이 human 이라는 클래스가 있다.


package sample;


public class human {

private int age;

private String name;

private String job;

public void setHumanInfo( int age, String name, String job)

{

this.age = age;

this.name = name;

this.job = job;

}

public void introduce()

{

System.out.println( "My Name is " + name );

System.out.println( "I`m " + age + " and my job is " + job );

}

}


아래는 human을 상속한 korean 클래스가 있다.


package sample;


public class korean extends human {

}


클래스 상속하는 방법은 extends 키워드를 넣어 주면 된다.

보다시피 korean는 상속만 받았지 아무것도 구현 하지 않았다.

이것을 사용하는 예를 보도록 하겠다.


package sample;


public class sample {

public static void main(String[] args) {

    korean k = new korean();

   human h = new human();

   

   k.setHumanInfo(10, "keke", "tester");

   h.setHumanInfo(20, "hoho", "programer");

   

   k.introduce();

   h.introduce();

}

}


[결과]

My Name is keke

I`m 10 and my job is tester

My Name is hoho

I`m 20 and my job is programer


korean는 구현한 부분이 없는데 human을 상속 받아서 human의 기능을 모두 이용 할 수 있다.

다음에는 상속과 더불어 많이 언급되는 오버라이딩에 대해 설명 하도록 하겠다.



반응형

+ Recent posts