정보처리기사 실기/프로그래밍

Java Programing 2

· 코딩마이데이

 

 

public class BungeoBBangTI {
    int x = 10;

    public static void main(String[] args) {
        BungeoBBangTI Bungeo1 = new BungeoBBangTI();
        System.out.println(Bungeo1.x);
    }
}

 

실행 결과

10

 

public class BungeoBBangTI {
    int x = 10;

    public static void main(String[] args) {
        BungeoBBangTI Bungeo1 = new BungeoBBangTI();
        Bungeo1.x = 30;
        System.out.println(Bungeo1.x);
    }
}

 

실행 결과

30

 

 

 

 

 

 

Static vs. Non-Static

public class BungeoBBangTI {
    static void callMe()
    {
        System.out.println("지금까지 해왔던 함수 호출");
    }

    public static void main(String[] args) {
        callMe();
    }
}

 

실행 결과

지금까지 해왔던 함수 호출

 

public class BungeoBBangTI {
    static void myStaticMethod()
    {
        System.out.println("저는 부르기만 하면 나와요");
    }

    public void myPublicMethod()
    {
        System.out.println("객체를 만들고 불러주세요");
    }

    public static void main(String[] args) {
        myStaticMethod();
        BungeoBBangTI Bungeo = new BungeoBBangTI();
        Bungeo.myPublicMethod();
    }
}

 

실행 결과

저는 부르기만 하면 나와요
객체를 만들고 불러주세요

 

생성자

public class BungeoBBangTI {
    int x;

    public BungeoBBangTI(int y)
    {
        x = y;
    }

    public static void main(String[] args) {
        BungeoBBangTI Bungeo = new BungeoBBangTI(5);
        System.out.println(Bungeo.x);
    }
}

 

실행 결과

5

 

 

 

 

public class Cars {
    int modelYear;
    String modelName;

    public Cars (int year, String name) {
        modelYear = year;
        modelName = name;
    }

    public static void main(String[] args) {
        Cars myCar = new Cars(1969, "포니");
        System.out.println(myCar.modelYear + " " + myCar.modelName);
    }
}

 

실행 결과

1969 포니

 

 

 

접근 제어자(Access Modifier) : Class

제어자 예제 설명
public public class OurClass {
   public static void main(String[] args) {
       System.out.println("Hello World");
   }
}
모든 접근을 허용, 어떠한 클래스가 접근을 하든 모두 허용.
default class MyClass {
   public static void main(String[] args) {
       System.out.println("Hello World");
   }
}
기본 제한자로써 아무것도 붙지 않고, 자신 클래스 내부와 같은 패키지 내에서만 접근이 가능.

 

접근제어자 (Access Modifier): 속성, 메소드, 생성자

제어자 설명 클래스 내부 동일 패키지 하위 클래스 그 밖에
public 모든 접근을 허용, 어떠한 클래스가 접근을 하든 모든 허용 O O O O
protected 외부에서 접근이 불가능합니다. 즉, 같은 클래스 내에서만 접근이 가능. O O O X
default 기본 제한자로써  아무것도 붙지 않고, 자신 클래스 내부와 같은 패키지 내에서만 접근이 가능. O O X X
private 상속받은 클래스 또는 같은 패키지에서만 접근이 가능. O X X X

 

접근 제어자 (Access Modifier) public

public class Main {
    public String fname = "샬라라";
    public String email = "Shalala@abc.com";
    public int schoolYear = 4;
}

 

접근제어자(Access Modifier) protected

class Person
{
    protected String fname = "샬랄라";
    protected String email = "Shalala@abc.com";
    protected int schoolYear = 4;
}

public class Student extends Person {
    private int age = 23;

    public static void main(String[] args) {
        Student myObj = new Student();
        System.out.println("이름: " + myObj.fname);
        System.out.println("이메일: " + myObj.email);
        System.out.println("학년:" + myObj.schoolYear);
        System.out.println("나이: " + myObj.age);
    }
}

 

실행 결과

이름: 샬랄라
이메일: Shalala@abc.com
학년:4
나이: 23

 

 

 

접근 제어자(Access Modifier) private

public class Student {
    private String fname = "샬랄라";
    private String email = "Shalala@abc.com";
    private int schoolYear = 4;

    public static void main(String[] args) {
        Student myObj = new Student();
        System.out.println("이름: " + myObj.fname);
        System.out.println("이메일: " + myObj.email);
        System.out.println("학년:" + myObj.schoolYear);
    }
}

 

실행 결과

이름: 샬랄라
이메일: Shalala@abc.com
학년:4

 

 

 

 

Final

 

abstract

abstract class mom {
    public String fname = "소촬퐁";
    public abstract void whatrudoing();
}

class son extends mom {
    public int schoolYear = 4;
    public void whatrudoing() {
        System.out.println("하루종일 공부!!");
    }
}

public class Student {
    public static void main(String[] args) {
        son myObj = new son();
        System.out.println("이름: " + myObj.fname);
        System.out.println("학년: " + myObj.schoolYear);
        myObj.whatrudoing();
    }
}

 

 

 

 

은닉(Encapsulation)

public class Person {
    private String name;
    public String getName() {
        return name;
    }

    public void setName(String newName) {
        this.name = newName;
    }
}
public class Main {
    public static void main(String[] args) {
        Person myObj = new Person();
        myObj.setName("준혁");
        System.out.println(myObj.getName());
    }
}

 

실행 결과

준혁