package test;
public class Board {
// 클래스 정의 Board
// 멤버변수
// 글번호 int num, 글쓴이 String name
// 글제목 String subject, 글내용 String content
// 조회수 int readcount
public int num;
public String name;
public String subject;
public String content;
public int readcount;
// 기본 생성자 => 초기값 0, null 자동할당
// 멤버변수 모든 값을 받는 생성자 => 초기값 할당
public Board() {
System.out.println("Board() 기본 생성자");
}
// 생성자 오버로딩(생성자 이름은 동일하고, 받는 변수 다름)
public Board(int a, String n, String s, String c, int r) {
num = a;
name = n;
subject = s;
content = c;
readcount = r;
}
// 메서드
// 리턴값 없음 prn()
// "글번호 num "글쓴이" name 글제목 글내용 조회수
public void prn() {
System.out.println("글번호 : " + num);
System.out.println("글쓴이 : " + name);
System.out.println("글제목 : " + subject);
System.out.println("글내용 : " + content);
System.out.println("조회수 : " + readcount);
}
}
package test;
public class Test1 {
public static void main(String[] args) {
Board b = new Board();
b.prn();
System.out.println("=================");
Board b2 = new Board(1,"홍길동", "hello", "안녕하세요", 1);
b2.prn();
}
}
this 자기자신 클래스 주소값
this.멤버변수 = 받아온 변수값
public Board(int num, String name, String subject, String content, int readcount) {
this.num = num;
this.name = name;
this.subject = subject;
this.content = content;
this.readcount = readcount;
}
- public(모두접근)
- 생략(같은 폴더내 접근)
- protected(상속관계일 때 접근)
- private(같은 클래스내에서만 접근)
public class Student {
private int num;
private String name;
private int html;
private int java;
private int db;
}
다른 클래스에서 접근 불가능
- 멤버변수값을 저장하는 메서드 만들기
public class Student {
// ** 한번에 받아오기
public void set(int num, String name, int html, int java, int db) {
// 멤버변수 = 값을 받아온 변수
this.num = num;
this.name = name;
this.html = html;
this.java = java;
this.db = db;
}
// ** 하나씩 받아오기
public void setNum(int num) {
this.num = num;
}
public void setName(String name) {
this.name = name;
}
public void setHtml(int html) {
this.html = html;
}
public void setJava(int java) {
this.java = java;
}
public void setDb(int db) {
this.db = db;
}
}
- 메서드에서는 리턴값이 무조건 하나 여러개 값 리턴 못함
public int getNum() {
return this.num;
}
public String getName() {
return this.name;
}
public int getHtml() {
return this.html;
}
public int getJava() {
return this.java;
}
public int getDb() {
return this.db;
}
package test;
public class Test2 {
public static void main(String[] args) {
// 객체생성
Student s = new Student();
s.setNum(2);
s.setName("이길동");
s.setHtml(85);
s.setJava(95);
s.setDb(98);
// 멤버변수 값을 가져와서 출력
System.out.println("학생번호 : " + s.getNum());
System.out.println("학생이름 : " + s.getName());
System.out.println("html점수 : " + s.getHtml());
System.out.println("java점수 : " + s.getJava());
System.out.println("db점수 : " + s.getDb());
}
}
<출력>
학생번호 : 2
학생이름 : 이길동
html점수 : 85
java점수 : 95
db점수 : 98
총점 : 278
평균 : 92.66666666666667
package test;
public class Car {
public Car() {
}
private String carName;
private int speed;
// 멤버변수에 값을 저장하는 setCarName, setSpeed
public void setCarName(String carName) {
this.carName=carName;
}
public void setSpeed(int speed) {
this.speed=speed;
}
// 멤버변수에 값을 가져오는 getCarName() getSpeed()
public String getCarName() {
return this.carName;
}
public int getSpeed() {
return this.speed;
}
public int speedUp (int a) {
speed = speed + a;
return speed;
}
public int speedDown (int a) {
speed = speed - a;
return speed;
}
}
package test;
public class Test3 {
public static void main(String[] args) {
Car c = new Car();
c.setCarName("소나타");
c.setSpeed(30);
System.out.println("차이름 : " + c.getCarName());
System.out.println("차속도 : " + c.getSpeed());
System.out.println("10 증가 : " + c.speedUp(10));
System.out.println("5 감소 : " + c.speedDown(5));
}
}
<출력>
차이름 : 소나타
차속도 : 30
10 증가 : 40
5 감소 : 35
- private 정보 은닉 : 멤버변수 아무나 접근 못하게 막고, set, get 메서드를 통해서 접근할수 있는 메서드 준비
- 객체지향개념 : 정보 은닉과 캡슐화
package test;
public class MyDate {
private int year;
private int month;
private int day;
public void setYear(int year) {
this.year=year;
}
public void setMonth(int month) {
this.month=month;
}
public void setDay(int day) {
this.day=day;
}
public int getYear() {
return this.year;
}
public int getMonth() {
return this.month;
}
public int getDay() {
return this.day;
}
}
package test;
public class Test4 {
public static void main(String[] args) {
MyDate m = new MyDate();
m.setYear(2020);
m.setMonth(12);
m.setDay(20);
System.out.println(m.getYear()+"년");
System.out.println(m.getMonth()+"월");
System.out.println(m.getDay()+"일");
}
}
단축키 alt - shift - s => r