2021.06.17 - [IT 독학/JAVA] - [자바 ①] 자바 JAVA 이론 (객체지향언어 / 변수 / 연산자)
2021.06.18 - [IT 독학/JAVA] - [자바 ②] 자바 JAVA 이론 (제어문 / 조건문 / 반복문 / 분기문 )
2021.06.18 - [IT 독학/JAVA] - [자바 ③] 자바 JAVA 이론 (배열)
자바는 객체 지향 언어고 (참조 → 자바 ①)
객체 지향 언어에는 객체, 클래스, 메소드, 추상화, 캡슐화, 상속, 다형성 등의 특징을 가진다.
클래스 Class
클래스는 고유성을 가진 객체가 모여 개념화된 특성을 정의한 것이다.
클래스를 비유한 가장 유명한 예시가 바로 '붕어빵 틀'일 것이다.
이 붕어빵 틀에서 생성된 객체가 바로 붕어빵이다.
다시말해
클래스의 정의대로 객체가 연산자를 통해 메모리 영역에 생성되는 것이다.
객체는 클래스가 없으면 생성되지 못한다.
객체 Object = 인스턴스 Instance
객체란 속성과 기능이 묶인 프로그램 단위를 말한다.
여기서 속성(attribute)는 객체가 가진 고유한 특성이고 기능(function)은 객체의 행동 패턴을 말한다.
자바에서 보면 속성은 멤버변수고 기능은 메소드로 볼 수 있다.
메소드 Method
메소드는 객체 간에 교류되는 프로그램화한 명령 메시지 단위이다. 쉽게 말해 데이터(객체)의 동작 처리 내용을 말한다.
메소드의 선언은 [접근제한자] [반환형] [메소드명] ( 매개변수 ) { } 로 이루어진다.
접근제한자의 종류로는
- public / protected / default / private 이 있다.
클래스는 주로 public 으로 선언되어 패키지 안과 밖에서 모두 접근이 가능하게 한다.
속성 (멤버변수)는 주로 private 으로 선언되어 외부로부터 데이터 변질을 막는다.
- 메소드 표현식
메소드의 표현식은 매개변수 유무와 리턴값 유무에 따라 달라진다.
* 클래스와 객체
클래스와 객체의 개념이 헷갈릴 수 있다. 이렇게 붕어빵틀과 붕어빵들로 생각하면 이해하기 쉽다.
+ 참고
인프런 강의
패키지 Package
패키지는 클래스의 묶음이다.
클래스를 사용할 때 패키지를 import 해서 사용한다.
*클래스 생성
*객체 생성
+ 계좌 클래스 생성 후 객체 생성 예시
클래스 생성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
package com.practice.object;
//클래스 선언
public class Object_Test {
//속성 (멤버 변수) 정의
private String name;
private String acc_No;
private String pwd;
private int bankCode;
private int balance;
//기본 생성자 정의
public Object_Test(){}
//매개변수 생성자 정의
public Object_Test(String name, String acc_No, String pwd, int bankCode, int balance) {
this.name = name;
this.acc_No = acc_No;
this.pwd = pwd;
this.bankCode = bankCode;
this.balance = balance;
}
//기능 (메소드) 정의
//입금 기능
public void in(int money) {
if(money>0) {
balance+=money;
System.out.println(name+"님의 계좌에 "+money+"원이 입금되었습니다.");
} else {
System.out.println("오류");
}
}
//출금 기능
public void out(int money) {
if(money<balance) {
balance-=money;
System.out.println(name+"님의 계좌에서 "+money+"원이 출금되었습니다.");
} else {
System.out.println("잔액이 부족합니다.");
}
}
//잔액 조회 기능
public void display() {
System.out.println(name+"님의 계좌에 잔액은 "+balance+"원 입니다.");
}
//setter 메소드 : 필드에 변경할 값 전달받아 필드 값 변경하는 메소드
public void setName(String name) {
this.name = name;
}
public void setAcc_No(String acc_No) {
this.acc_No = acc_No;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public void setBankCode(int bankCode) {
this.bankCode = bankCode;
}
public void setBalance(int balance) {
this.balance = balance;
}
//getter 메소드 : 필드에 기록된 값 호출해 요청한 쪽으로 읽은 값 넘기는 메소드
public String getName() {
return name;
}
public String getAcc_No() {
return acc_No;
}
public String getPwd() {
return pwd;
}
public int getBankCode() {
return bankCode;
}
public int getBalance() {
return balance;
}
}
|
cs |
객체 생성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
package com.practice.object;
public class Object_Test_Run {
public static void main(String[] args) {
//객체 생성 (기본 생성자)'
Object_Test a = new Object_Test();
//객체 생성 (매개변수 생성자)
//매개변수 : String name, String acc_No, String pwd, int bankCode, int balance
Object_Test b = new Object_Test("홍길동","112-2233-4567-8","1234",20,0);
//메소드 호출
//잔액조회
a.display();
b.display();
//입금 100만원
b.in(1000000);
//출금 10만원
b.out(100000);
//setter로 값 변경하기
a.setName("황진이");
a.setAcc_No("620-1111-2222-9");
a.setPwd("9876");
a.setBankCode(15);
a.setBalance(10000);
//getter로 값 조회
System.out.println(a.getName());
System.out.println(a.getAcc_No());
System.out.println(a.getPwd());
System.out.println(a.getBankCode());
System.out.println(a.getBalance());
}
}
|
cs |
+ setter 메소드
setter 메소드는 멤버변수에 변경할 값을 전달받아 값을 변경하는 메소드이다.
+ getter 메소드
getter 메소드는 멤버변수의 값을 읽어 요청한 쪽으로 그 값을 넘기는 메소드이다.
'JAVA' 카테고리의 다른 글
[자바 ⑥] 자바 JAVA 이론 (오버로딩 / 오버라이딩) (1) | 2021.06.22 |
---|---|
[자바 ⑤] 자바 JAVA 이론 (객체의 특징 / 추상화 / 캡슐화 / 상속 / 다형성 ) (0) | 2021.06.19 |
[자바 ③] 자바 JAVA 이론 (배열) (0) | 2021.06.18 |
[자바 ②] 자바 JAVA 이론 (제어문 / 조건문 / 반복문 / 분기문 ) (0) | 2021.06.18 |
[자바 ①] 자바 JAVA 이론 (객체지향언어 / 변수 / 연산자) (0) | 2021.06.17 |
댓글