전체 글: 217개의 글

[Java] 자바기초, (멤버, 생성자 등)

Posted by nkjok
2025. 2. 2. 13:31 낙서장[1]/91. Java
반응형

자바에서 멤버 함수(메서드)는 클래스 내에 정의된 함수로, 객체의 동작을 정의하는 데 사용된다. 멤버 함수는 객체의 상태를 변경하거나 객체의 데이터를 처리하는 역할을 한다. 예를 들어, 아래의 코드는 간단한 Person 클래스를 정의하고 멤버 함수(메서드)를 포함하고 있다:


public class Person {
    // 멤버 변수 (필드)
    private String name;
    private int age;

    // 생성자
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 멤버 함수 (메서드)
    public void displayInfo() {
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
    }

    // Getter 메서드
    public String getName() {
        return name;
    }

    // Setter 메서드
    public void setName(String name) {
        this.name = name;
    }

    // Getter 메서드
    public int getAge() {
        return age;
    }

    // Setter 메서드
    public void setAge(int age) {
        this.age = age;
    }
}

public class Main {
    public static void main(String[] args) {
        // Person 객체 생성
        Person person = new Person("John", 30);

        // 멤버 함수 호출
        person.displayInfo();

        // Getter 메서드 호출
        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());

        // Setter 메서드 호출
        person.setName("Alice");
        person.setAge(25);

        // 변경된 정보 출력
        person.displayInfo();
    }
}
 

위의 예시에서:

  • Person 클래스는 두 개의 멤버 변수(name, age)를 가지고 있다.
  • 생성자는 Person 객체가 생성될 때 호출되며, name과 age를 초기화한다.
  • displayInfo 메서드는 Person 객체의 정보를 출력하는 멤버 함수이다.
  • getName, setName, getAge, setAge 메서드는 각각 name과 age를 가져오고 설정하는 역할을 한다.

이처럼 멤버 함수는 객체의 동작을 정의하고, 객체의 상태를 변경하거나 데이터를 처리하는 데 사용된다. 


public class Person {
    // 멤버 변수 (필드)
    private String name; // 'name'이라는 private 필드를 선언한다.
    private int age;     // 'age'라는 private 필드를 선언한다.

    // 생성자
    public Person(String name, int age) { // 'name'과 'age'를 매개변수로 받는 생성자를 정의한다.
        this.name = name; // 전달된 'name' 매개변수를 'this.name'에 저장한다.
        this.age = age;   // 전달된 'age' 매개변수를 'this.age'에 저장한다.
    }

    // 멤버 함수 (메서드)
    public void displayInfo() { // 'displayInfo'라는 멤버 함수를 정의한다.
        System.out.println("Name: " + name); // 'name' 필드를 출력한다.
        System.out.println("Age: " + age);   // 'age' 필드를 출력한다.
    }

    // Getter 메서드
    public String getName() { // 'name' 필드를 반환하는 'getName' 메서드를 정의한다.
        return name; // 'name' 필드를 반환한다.
    }

    // Setter 메서드
    public void setName(String name) { // 'name' 필드를 설정하는 'setName' 메서드를 정의한다.
        this.name = name; // 전달된 'name' 매개변수를 'this.name'에 저장한다.
    }

    // Getter 메서드
    public int getAge() { // 'age' 필드를 반환하는 'getAge' 메서드를 정의한다.
        return age; // 'age' 필드를 반환한다.
    }

    // Setter 메서드
    public void setAge(int age) { // 'age' 필드를 설정하는 'setAge' 메서드를 정의한다.
        this.age = age; // 전달된 'age' 매개변수를 'this.age'에 저장한다.
    }
}

public class Main {
    public static void main(String[] args) { // 메인 메서드를 정의한다.
        // Person 객체 생성
        Person person = new Person("John", 30); // 'John'과 30을 매개변수로 하여 'Person' 객체를 생성한다.

        // 멤버 함수 호출
        person.displayInfo(); // 'displayInfo' 메서드를 호출하여 'John'과 30을 출력한다.

        // Getter 메서드 호출
        System.out.println("Name: " + person.getName()); // 'getName' 메서드를 호출하여 'name'을 출력한다.
        System.out.println("Age: " + person.getAge());   // 'getAge' 메서드를 호출하여 'age'를 출력한다.

        // Setter 메서드 호출
        person.setName("Alice"); // 'setName' 메서드를 호출하여 'name'을 'Alice'로 변경한다.
        person.setAge(25);       // 'setAge' 메서드를 호출하여 'age'를 25로 변경한다.

        // 변경된 정보 출력
        person.displayInfo(); // 'displayInfo' 메서드를 다시 호출하여 'Alice'와 25를 출력한다.
    }
}
 
반응형

[Java] 자바 접근 지정자 이해하기

Posted by nkjok
2025. 2. 2. 13:05 낙서장[1]/91. Java
반응형

접근지정자


자바 접근 지정자 이해하기

자바에서 중요한 개념인 접근 지정자에 대해 알아보려고 한다. 특히, 클래스와 객체 지향 프로그래밍을 다룰 때 꼭 이해해야 할 내용이다. 자바 접근 지정자의 종류와 각각의 특징을 설명한다.

1. 접근 지정자의 종류

자바에는 네 가지 주요 접근 지정자가 있다. 각 접근 지정자는 클래스, 메서드, 필드 등이 다른 클래스에서 어떻게 접근 가능한지를 결정한다.

  1. private: 동일 클래스 내에서만 접근 가능하다.
  2. default: 동일 패키지 내에서 접근 가능하다.
  3. protected: 동일 패키지 내에서 접근 가능하며, 다른 패키지의 하위 클래스에서도 접근 가능하다.
  4. public: 모든 클래스에서 접근 가능하다.

2. 접근 지정자의 사용 예시

  • private: 'class AA'의 private 멤버는 'class AA' 내에서만 접근 가능하다. 다른 클래스나 패키지에서는 접근이 불가능하다.
  • default: 'class AA'의 default 멤버는 같은 패키지 내의 다른 클래스에서는 접근 가능하지만, 다른 패키지에서는 접근이 불가능하다.
  • protected: 'class AA'의 protected 멤버는 같은 패키지 내의 다른 클래스뿐만 아니라, 다른 패키지의 하위 클래스에서도 접근 가능하다.
  • public: 'class AA'의 public 멤버는 모든 클래스에서 접근 가능하다.

3. 패키지 구조 설명

사진에는 두 개의 패키지(Package A와 Package B)가 있다. 각 패키지에는 여러 클래스가 포함되어 있다. 예를 들어, Package A에는 'class AB', 'class AA', 'class AAC'가 있고, Package B에는 'class BB'와 'class AAB'가 있다. 'class AAC'와 'class AAB'는 'class AA'를 상속받는다.

 

 

자바의 접근 지정자는 코드의 가독성과 유지보수성을 높이는 데 중요한 역할을 한다. 접근 지정자를 적절히 사용하면, 코드의 보안성과 무결성을 유지하면서도 필요한 부분에서만 접근을 허용할 수 있다. 

반응형

[Java] 자바로 개인정보 숨김 처리하기

Posted by nkjok
2025. 1. 30. 08:49 낙서장[1]/91. Java
반응형

자바로 개인정보 숨김 처리하기

개인정보 숨김 처리 예제

package JavaApp.chap_03;

public class _Quiz_06 {

    public static String getHiddenData(String data, int index) {
        String hiddenData = data.substring(0, index);
        // for (int i = index; i < data.length(); i++) {
        for (int i = 0; i < data.length() - index; i++) {
            hiddenData += "*";
        }
        return hiddenData;
    }

    public static void main(String[] args) {

        String name = "이코드"; // 이름
        String id = "990123-1234567"; // 주민등록번호
        String phon = "010-1234-5678"; // 전화번호

        System.out.println("이름 : " + getHiddenData(name, 1));
        System.out.println("주민등록번호 : " + getHiddenData(id, 8));
        System.out.println("전화번호 : " + getHiddenData(phon, 9));

        System.out.println(getHiddenData(name, 1));

    }
}

코드 설명

위 예제 코드는 주어진 데이터에서 특정 인덱스 이후의 부분을 ''로 숨기는 방법을 보여준다. 예를 들어, 이름 "이코드"에서 첫 번째 문자 뒤에 남은 문자들을 ''로 숨기는 식으로 개인정보를 보호한다.

메서드 설명

  • getHiddenData(String data, int index) 메서드는 주어진 데이터 문자열에서 index 위치까지의 부분은 그대로 두고, 나머지 부분을 '*'로 대체하여 숨긴다.
    • 예를 들어, getHiddenData("이코드", 1)을 호출하면 "이**"를 반환한다.

결과 예시

이름 : 이**
주민등록번호 : 990123-1*******
전화번호 : 010-1234-*****

이와 같이 개인정보를 일부 숨겨서 출력할 수 있는 자바 코드를 통해 개인정보 보호 방법을 쉽게 이해할 수 있다.

출력결과

반응형

[Java] 자바 프로그램으로 제곱근 계산하기

Posted by nkjok
2025. 1. 29. 23:06 낙서장[1]/91. Java
반응형

자바 프로그램으로 제곱근 계산하기

1. 제곱근 계산 예제

package JavaApp.chap_03;

public class 제곱근 {

    // 주어진 숫자의 제곱근을 계산하는 메서드
    public static int getSquareRoot(int number, int exponent) {
        int result = 1;
        for (int i = 0; i < exponent; i++) {
            result *= number;
        }
        return result;
    }

    public static void main(String[] args) {
        // 2의 승수 계산
        for (int i = 0; i <= 10; i++) {
            System.out.println(getSquareRoot(2, i));
        }
        // 3의 승수 계산
        for (int i = 0; i <= 10; i++) {
            System.out.println(getSquareRoot(3, i));
        }
        // 4의 승수 계산
        for (int i = 0; i <= 10; i++) {
            System.out.println(getSquareRoot(4, i));
        }
    }
}

2. 코드 설명

위 예제는 숫자와 지수를 입력받아 제곱근을 계산하는 자바 코드를 보여준다:

  1. getSquareRoot(int number, int exponent): 주어진 숫자(number)와 지수(exponent)를 기반으로 제곱 값을 계산하는 메서드야. for 루프를 사용해 지수만큼 숫자를 곱해 결과를 반환한다.
  2. main(String[] args) 메서드:
    • 2의 승수 계산: for 루프를 사용해 0부터 10까지 2의 제곱값을 계산하고 출력한다.
    • 3의 승수 계산: for 루프를 사용해 0부터 10까지 3의 제곱값을 계산하고 출력한다.
    • 4의 승수 계산: for 루프를 사용해 0부터 10까지 4의 제곱값을 계산하고 출력한다.

이 결과로 각 숫자의 0승부터 10승까지의 값을 순차적으로 출력한다.

결과 예시

 
1
2
4
8
16
32
64
128
256
512
1024
1
3
9
27
81
243
729
2187
6561
19683
59049
1
4
16
64
256
1024
4096
16384
65536
262144
1048576

위와 같은 방식으로 각 숫자의 제곱근 결과를 확인할 수 있다. 자바에서의 제곱 계산 방법을 쉽게 이해할 수 있도록 구성된 예제다.

출력결과

반응형

[Java] 주민등록번호 앞자리 출력하기

Posted by nkjok
2025. 1. 29. 17:10 낙서장[1]/91. Java
반응형

자바로 주민등록번호 앞자리 출력하기

예제 소스 코드

  1. 주민등록번호 앞자리 출력하기:
    package JavaApp.chap_03;
    
    public class _Quiz_03 {
        public static void main(String[] args) {
            // 주민등록번호 예제 문자열
            String id = "199131-1234567";
            
            // '-' 기호를 기준으로 앞 자리와 뒷 자리를 나눠서 출력한다.
            System.out.println(id.substring(0, id.indexOf("-") + 2)); // 결과: 199131-1
        }
    }
    

코드 설명

위 예제 코드는 주어진 주민등록번호 문자열에서 '-' 기호로 앞 자리와 뒷 자리를 구분하며 앞 자리와 첫 번째 자리만 출력하는 방법이다. 여기서는 substring과 indexOf 메서드를 사용해 문자열을 처리한다.

  1. substring(int beginIndex, int endIndex):
    • 지정된 시작 인덱스부터 끝 인덱스 직전까지의 문자열을 반환한다.
  2. indexOf(String str):
    • 주어진 문자열에서 지정된 문자열이 처음으로 나타나는 위치의 인덱스를 반환한다.

이 예제는 주민등록번호의 앞자리와 성별을 나타내는 첫 번째 자리만 출력하는 기능을 제공한다.

출력결과

추가 예제

주민등록번호에서 YYYYMMDD 형식의 생년월일만 출력하고 싶다면 다음과 같이 쓸 수 있다:

public class _Quiz_03 {
    public static void main(String[] args) {
        String id = "199131-1234567";
        // 생년월일 (YYYYMMDD) 형식으로 출력한다.
        System.out.println(id.substring(0, id.indexOf("-"))); // 결과: 199131
    }
}

이 예제는 indexOf와 substring 메서드를 활용해 생년월일만을 추출하는 간단한 방법을 보여준다.

반응형