-
[Java] 객체지향언어 입문프로그래밍/Java 2022. 3. 16. 19:30반응형
목차
- 객체란?
- java 객체지향언어의 클래스
- 클래스 내용 표시조건
- 생성자, 인스턴스, 함수, 멤버변수, 지역변수
객체란?
객체는 일상생활에서 표현 할 수 있는 단위라고 생각하고 있습니다. 학생이 도서관을 가서 3권의 책을 빌렸다. 라는 문장이 있을 때 학생, 도서관, 책이라는 것이 객체로 볼 수 있습니다.
java 객체지향언어의 클래스
객체 클래스를 만들때 객체의 내용을 파악하고 그 안에 표기해야할 필요한 정보들(이하 속성들(=필드))을 정의하여 사용하는 것이라고 생각하시면 됩니다. 학생을 예로 들면 학생이라는 클래스가 만들 수 있고, 그 안에 학생번호, 학생이름, 성별, 나이, 빌린책id 등이 속성으로 가질수 있습니다.
//클래스 public class Student { //속성(멤버 변수) int studentNumber; String studentName; String studentAge; String studentGender; int borrowBookIds; }
학생이라는 클래스를 만들고 그 안에 속성(특성)을 정의하여 정의 해놓은 예입니다.
public class Order { int orderId; String buyerId; String sellerId; int productId; String orderDate; }
제품을 살때 order는 이런식으로 객체 생성이 가능합니다.
클래스 내용 표시 조건
클래스 명칭을 정의 할 때는 객체를 파악하고 멤버 변수를 정의 하는 것도 중요하지만 몇가지 규약이 있습니다.
- class를 만들 때 클래스는 여러개 존재 할 수 있다, 하지만 public 클래스는 하나이다.
- public class 는 대문자로 시작하며 java파일 명칭과 동일하다.
- camel notation(카멜 표기법)방식으로 명명한다.
프로그래밍에서 객체를 잘 인식하고 정의 하는 것이 매우 중요한 과제 이니 숙달하는 과정이 필요한 것 같습니다.
생성자
생성자는 객체를 생성될때 호출되는 내용으로 멤버변수가 이전에 할당되었던 것을 초기화 해주고 새로 생성되는 객체에 값을 넣어 실행 될 수 있도록 도와주는 역할을 한다.
//student.java //클래스 public class Student { //속성(멤버 변수) int studentNumber; String studentName; String studentAge; String studentGender; int borrowBookIds; //생성자 방법 1 public Student(int studentNumber, String studentName, String studentAge, String studentGender, int borrowBookIds ){ this.studentNumber = studentNumber; this.studentName = studentName; this.studentAge = studentAge; this.studentGender = studentGender; this.borrowBookIds = borrowBookIds; } //생성자 방법 2 public Student() { this.Student("no num", "no name", 0, "중립", 0) } //함수 public String StudentInfo(){ //지역변수 String nim = "님"; return studentNumber + "/" + studentName + nim + "/" + studentAge } } //main public main~~{ //객체 클래스 생성(=인스턴스) Student student = new Student(1, "홍길동", 20, "남", 1); //객체(=인스턴스) 멤버 변수 호출 student.studentName //출력 //홍길동 //객체 안에 함수 사용 System.out.println(student.StudentInfo()) //함수 안에서 멤버 변수 사용 및 지역변수 사용 //출력 //1/홍길동님/20 }
student라는 객체를 생성을 하면 main에서는 student라는 인스턴트가 생성 되었다고 얘기를 주로 합니다. 객체도 맞는 말입니다. 그리고 new Student에서 값을 넣어 사용하게 되면 인스턴스가 힙에 참조형 값으로 생성이 되고 할당된 멤버변수는 그 참조형 값(주소값)에 멤버변수들도 할당이 되어 내용을 사용할 수 있게 됩니다. 이해가 완전히 되지 않는다면 힙이라는 동적 메모리 관리에 대해 한번 공부해보세요.
인스턴스
객체클래스에서 작성했던 내용중 생성자를 호출하여 만든 객체 변수가 바로 인스턴스라고 합니다. 인스턴스 생성 방법은 2가지로 나뉠수 있습니다. 첫 번째 방법은 필요한 정보를 넣어 생성해주는 방법이고, 두 번째 방법은 내용이 없어 객체 내용을 기본값으로 생성 해줄 때 사용합니다.
//main public main~~{ //객체 클래스 생성(=인스턴스) 방법 1 Student student = new Student(1, "홍길동", 20, "남", 1); //객체 클래스 생성(=인스턴스) 방법 2 Student student = new Student(); }
멤버변수
멤버 변수는 객체 내에 필요한 정보들(속성들(=필드들))이라고 보시면 됩니다. 필요한 정보들을 줄여서 멤버 변수, 멤버 변수들 이라고 합니다.
//student.java //클래스 public class Student { //속성(멤버 변수) int studentNumber; String studentName; String studentAge; String studentGender; int borrowBookIds; }
함수
함수는 객체 안에서 필요한 로직을 구현 해 놓는 공간이라고 생각하시면 됩니다.
//함수 public String StudentInfo(){ //지역변수 String nim = "님"; return studentNumber + "/" + studentName + nim + "/" + studentAge }
지역변수
지역변수는 멤버 변수에 포함되지 않고 함수 내에서 사용하는 변수라고 보시면 됩니다. 속성처럼 계속 사용하지 않아도 되고 할당한 다음 로직이 끝나면 없어지는 용도일 때 사용됩니다.
String nim = "님";
여기까지 객체, 객체 생성법, 객체 내에서 사용되는 여러가지 용어들을 정리해 보았습니다. 다음에는 이런 객체가 여러가지 생성이 되고 각각의 내용이 엮여있을 때 속성값들이 어떻게 처리 되는지에 대한 내용 객체간의 협력에 대해 포스팅 해보도록 하겠습니다.
반응형'프로그래밍 > Java' 카테고리의 다른 글
[Java ] 클래스 상속 및 상속을 사용하는 이유 (0) 2022.03.20 [Java 객체지향 입문 ] 객체간의 협력 (0) 2022.03.17 eclipse font 변경하기 (0) 2022.03.16 JAVA 생성자란? (인스턴스, 멤버변수, 초기화, 필드) (0) 2019.09.24 java 오버로딩(overloading) (0) 2019.09.23