ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 복습 1일차-(클래스)
    프로그래밍 언어/자바(JAVA) 2024. 2. 14. 18:21

    클래스가 필요한 이유

    만약 클래스가 없다면 변수나 배열로 데이터를 저장해야하는데 이는 사람이 유지보수하기에는 정말 힘들다

    Case 1. 학생 정보를 변수로 저장한다

    학생이 늘어날때마다 변수를 추가로 선언해야하고 출력하는 코드도 반복문으로 작성하기 힘들다

    public static void main(String[] args) {
        String studentName1 = "학생1";
        int studentAge1 = 15;
        int studentGrade1 = 90;
    
        String studentName2 = "학생2";
        int studentAge2 = 16;
        int studentGrade2 = 80;
    
        System.out.println("이름 : " + studentName1 + " 나이 : " + studentAge1 + " 성적 : " + studentGrade1);
        System.out.println("이름 : " + studentName2 + " 나이 : " + studentAge2 + " 성적 : " + studentGrade2);
    }

     

    Case 2. 그렇다면 배열로 저장한다

    3개의 배열에 인덱스에 정확하게 찾아서 삭제, 추가 연산을 해주어야해 항상 배열 안에 있는 데이터를 읽어와야한다 

    -> 시간도 오래 걸리고 자칫 잘못하다간 데이터가 꼬일 수 있다

    public static void main(String[] args) {
        String[] studentNames = {"학생1", "학생2"};
        int[] studentAges = {15,16};
        int[] studentGrade = {90,80};
    
        for (int i = 0; i < studentNames.length; i++) {
            System.out.println("이름 :" + studentNames[i] + " 나이 : " + studentAges[i] + " 성적 : " + studentGrade[i]);
        }
    }

    클래스를 도입해보자

    ■ 클래스 안에 선언한 변수를 멤버 변수, 필드 등 다양하게 불린다

    ■ 사용자가 원하는 학생이라는 새로운 타입을 만들어낼 수 있다

    package class1;
    
    public class Student {
     String name;
     int age;
     int grade;
    }

    객체의 생성 과정

     

    객체의 멤버 변수를 참조하는 과정

    용어 정리

    클래스 : 객체를 생성하기 위한 틀 또는 설계도이다 객체가 가져야할 속성과 기능을 정의해두었다

    객체(인스턴스) : 클래스가 정의한 속성과 기능을 가진 실체(메모리를 할당 받음)이다

    인스턴스(객체) : 특정 클래스에 속해있는지 강조할 때 사용한다

    ■ ex) student1 객체는 Student 클래스의 인스턴스이다

     

    정리

    ■ 설계도인 클래스를 기반으로 객체(인스턴스)를 생성하고 그 객체의 실제 메모리 주소(참조값)을 변수에 저장한다

    ■ 이를 통해 변수를 참조하여 실제 객체에 접근하고 사용할 수 있다

    ■ 자바에서 대입은 항상 변수에 들어 있는 값을 복사해서 전달한다

    '프로그래밍 언어 > 자바(JAVA)' 카테고리의 다른 글

    복습 3일차 - 객체지향과 클래스  (0) 2024.02.15
    복습 2일차 - 기본, 참조 자료형  (0) 2024.02.15
    13일차 - 네트워크(자바 끝~)  (0) 2024.02.08
    11,12일차 - Thread  (0) 2024.02.06
    4일차 - 배열  (0) 2024.02.05
Designed by Tistory.