2020. 4. 26. 16:15ㆍ인프런/웹개발 코스 [JAVA 개발언어]
객체지향 프로그래밍
자바는 객체지향 프로그래밍 언어입니다. 자바의. 모든 것은 클래스 객체의 요소, 메서드와,메소드와 모두 연관되어있습니다.
현실 세계에서의 객체로서 자동차가 있습니다. 자동차는 색상, 무게, 타이어와,무게, 같은 요소가 있으며, 메소드적인 가속,
시동, 브레이크가. 이러한 자동차가 모두 똑같은 것은 아니죠. 이처럼 사물을 찍어내는 기기, 제과제빵의, 틀처럼 Class로서 사물을 바라보는 것입니다.
객체지향 프로그래밍 OOP(Object Oriented Programming)의 특성은 아래와 같습니다.
- 다형성(Polymorphism)
- 캡슐화(Encapsulation)
- 추상화(Abstraction)
- 상속(Inheritance)
클래스의 생성
package java01_01;
public class JavaTests {
public int pblcvar;
public String str;
}
처음에는 위의 코드처럼 클래스를 생성하여줍니다. 그리고 클래스 안에 변수를 만들어주는데 이변수를 멤버 변수라 합니다 여기서 맴버 변수란 특정 객체와 연결된 변수의 하나이며, 해당 변수의 모든 메소드메서드(멤버 함수)에 접근이 가능합니다.
다음으로 다른 클래스를 만들어 전의 클래스를 가져와줍니다.
package java01_01;
public class JavaTest {
public static void main(String[] args) {
JavaTests jvtsts = new JavaTests();
System.out.println("문자읽기"+jvtsts.str);
System.out.println("문자읽기"+jvtsts.pblcvar);
}
}
이렇게 JavaTests에서 값을 가져올 수 있습니다.
이번에는 더 추가하여 값을 가져오겠습니다.
package java01_01;
public class JavaTests {
public int pblcvar;
public String str;
public JavaTests()
{
pblcvar = 3+3;
str = "초기화되는값";
}
public JavaTests(int a, String s)
{
pblcvar = a;
str = s;
}
}
위의 코드처럼 같은 클래스의 이름을 여러 번 사용이 가능합니다 다음으로
package java01_01;
public class JavaTest {
public static void main(String[] args) {
JavaTests jvtsts = new JavaTests();
System.out.println("문자열"+jvtsts.str);
System.out.println("문자열"+jvtsts.pblcvar);
int var = 0;
String str = "";
JavaTests jvTests2 = new JavaTests(5,"100");
System.out.println("문자열"+jvTests2.str);
System.out.println("문자열"+jvTests2.pblcvar);
}
}
처음에 값을 초기화해주고 객체를 JavaTests2로 생성해줍니다 그리고 출력을 해주면
위의 사진처럼 나옵니다.
접근 제어자
변수나 메소드를 선언할 때 접근을 제어할 수 있는 제어자(modifier)를 설정할 수 있습니다. 이러한 접근 관련 제어자를 통해서 객체지향 언어의 중요 특성 중 하나인 캡슐화와 정보 숨김을 구현할 수 있습니다.
그리고 자바에서 제어자는 접근 제어자와 기타 제어자로 구분할 수 있습니다.
접근 제어자
구분 | 제어자 | 설명 |
접근권한 | public | 모든 클래스에서 접근이 가능합니다 |
protected | 동일 패키지에 속하는 클래스와 하위클래스 관계의 클래스에 의해 접근이 가능합니다 | |
private | 클래스 내에서만 접근이 가능합니다 |
접근 권한
종류 | 클래스 | 하위 클래스 | 동일 패키지 | 모든 클래스 |
private | O | X | X | X |
default | O | X | O | X |
protected | O | O | O | X |
public | O | O | O | O |
접근권한 범위 public> protected> default> privatepublic>protected>default>private 입니다
- private: 제어자 중에서 가장 권한범위가 좁으며 선언된 클래스 내부에서만 접근 가능합니다
- public: 모든 다른 클래스에서 접근 가능합니다. 즉 접근 제약이 없습니다
- default: 동일한 패키지에있는 클래스만 접근 가능합니다.
- protected:동일 패키지 또는 다른 패키지의 하위 클래스에서 접근 가능합니다.
- final: 클래스에 사용 시 다른 클래스에서 상속 불가능하며 매소드,매소드, 멤버 변수에 사용시 오버 라이딩, 수정할 수 없습니다.
- static: 매소드, 멤버 변수에 사용. 클래스에 속하게 되며 객체의 생성없이 바로 접근 가능..
- abstract: 클래스에 사용 시 객체 생성 불가능해 오직 다른클래스가 상속받아서 사용해야합니다
메서드에 사용 시 오직 abstract 클래스에서만 abstract 메서드 정의가능 합니다. 메소드는바디(중괄호) 부분이 없습니다.(메서드의 예: abstract void run(); 바디 부분은 상속받은 곳에서 기능에 맞게 작성.)
'인프런 > 웹개발 코스 [JAVA 개발언어]' 카테고리의 다른 글
상속 (0) | 2020.04.26 |
---|---|
캡슐화 (0) | 2020.04.26 |
함수 (0) | 2020.04.26 |
변수 부터 예외처리까지 (0) | 2020.04.25 |
자바언어 설명, 설치 (0) | 2020.04.25 |