접근 지정자란?
접근 지정자는 클래스혹은 클래스내의 멤버앞에 붙어서 다른 클래스의 접근을 제한하는 역할을 한다.
객체를 캡슐화하기 때문에, 객체에 다른 객체가 접근하는 것으로 허용할지, 말지를 지정할 필요가 있다.
- public : 모든 접근 허용, 어떠한 클래스가 접근을 하던 모두 허용
- protected : 같은 패키지와 상속받은 클래스, 클래스 내부에서만 접근 가능
- default : 기본 지정자, 접근 지정자를 명시하지 않을 시 적용 됨, 같은 패키지와 클래스 내부에서만 접근 가능
- private : 외부에서는 접근이 불가능, 클래스 내부에서만 접근 가능
------------------강사님 강의 메모 ------------------------
접근지정자
static - 정적, 실행전, 변화가 없다, 미리 준비됨
dynamic - 동적, 실행시(run-time), 변화가 있다, 미리준비되지 않음
-----------------------------------------------------------------------------------------
객체지향에서는
1. 클래스를 만들고
2. 클래스를 이용해서 인스턴스를 만들고
3. 인스턴스를 사용해서 코딩 진행
=> static은 인스턴스를 만들지 않고도 사용할 수 있게 해준다.
------------------------------------------------------------------------------------------
setter는 private 멤버변수를 대신 수정하는 메서드
getter는 private 멤버변수를 대신 읽어오는 메서드
-----------------------------7일차 연습문제 ---------------------------------
1. 5명의 학생을 저장하는 Student 배열을 만들어서 이름과 점수를 입력하고 출력하기.
import java.util.Scanner;
class Studentz {
String name;
int korea = 0,
english =0,
math =0;
public Studentz(String name, int korea, int english, int math) {
this.name = name;
this.korea = korea;
this.english = english;
this.math = math;
}
public double getAvg() {
return (korea + english + math) /3 ;
}
}
public class Quiz_07_01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Studentz[] stu = new Studentz[5];
for(int i=0; i<stu.length; i++) {
System.out.println("이름 국어 영어 수학 점수를 차례대로 입력하세요 ");
String name = sc.next();
int korea = sc.nextInt();
int english = sc.nextInt();
int math = sc.nextInt();
stu[i] = new Studentz(name, korea, english, math);
}
System.out.println("=======================================");
for(int i=0; i<stu.length; i++) {
System.out.println (stu[i].name +"학생\n" + "국어 :" + stu[i].korea +"\n" +"영어 :" + stu[i].english+"\n" +"수학 :"+ stu[i].math +"\n");;
sc.close();
}
}
}
2. 마우스 클래스를 생성하시오(왼쪽버튼, 오른쪽버튼, mouseMove() )
class Mouse{
public String name;
private int a;
private int b;
public void leftmouse() {System.out.println("왼쪽 버튼입니다.");}
public void rightmouse() {System.out.println("오른쪽 버튼입니다.");}
public void setName(String name) {
this.name = name;
System.out.println(name);
}
public void setMove(int a, int b) {
this.a = a;
this.b = b;
}
public void MouseMove() {
System.out.println("(" + a + "," + b + ")");
}
}
public class Quiz_07_2 {
public static void main(String[] args) {
Mouse mouse = new Mouse();
mouse.setName("기본마우스");
mouse.setMove(10, 5);
mouse.leftmouse();
mouse.rightmouse();
mouse.MouseMove();
}
}
3. 휠마우스 클래스를 마우스클래스를 상속받아서 생성하시오(스크롤휠 추가)
class MouseWhell extends Mouse{
public void scroll() {System.out.println("스크롤휠 입니다.");}
}
public class Quiz_07_3 {
public static void main(String[] args) {
MouseWhell mw = new MouseWhell();
mw.setName("휠마우스");
mw.leftmouse();
mw.rightmouse();
mw.scroll();
mw.setMove(33, 22);
mw.MouseMove();
}
}
4. 3버튼 마우스 클래스를 휠마우스 클래스를 상속받아서 생성하시오(버튼 추가)
class ThreeBtnMouse extends Mouse{
public void Threebtn() {System.out.println("3버튼을 눌렀습니다.");}
}
public class Quiz_07_4 {
public static void main(String[] args) {
ThreeBtnMouse tbm = new ThreeBtnMouse();
tbm.setName("3버튼 마우스");
tbm.leftmouse();
tbm.rightmouse();
tbm.Threebtn();
tbm.setMove(3234, 2123);
tbm.MouseMove();
}
}
5. 2~4번의 인스턴스를 생성하시오.
public class Quiz_07_5 {
public static void main(String[] args) {
ThreeBtnMouse tbm = new ThreeBtnMouse();
tbm.setName("3버튼 마우스\n");
MouseWhell mw = new MouseWhell();
mw.setName("휠 마우스\n");
Mouse mouse = new Mouse();
mouse.setName("기본 마우스\n");
}
}
'Back-End > Java' 카테고리의 다른 글
[java] 업캐스팅(UpCasting)과 다운캐스팅(DownCasting) (0) | 2022.02.15 |
---|---|
[java] 추상클래스와 인터페이스 (0) | 2022.02.08 |
[java] 예외처리, 객체지향, 클래스 (0) | 2022.02.04 |
[java] continue와 break 그리고 배열 (0) | 2022.02.03 |
[java] 조건문과 반복문 (0) | 2022.01.28 |