본문 바로가기
자격증

프로그래밍 언어: 자바편

by 보끔밥0130 2023. 3. 4.
728x90

!---------- Day1 ----------

key point : 객체 지향, 입/출력 함수, JAVA 문법, 접근 제한자

C언어는 절차 지향 언어입니다.

한계는 재사용성이 떨이져서 유지 보수가 떨어집니다.

! 객체 지향
: 현실 세계 존재하는 실체(Entity,개체) 및 개념들을 "객체"라는 독립된 단위로 구성합니다.

이 객체들이 메시지를 통하여 상호작용함으로써 전체 시스템이 운영되는 개념

예를 들어, 클래스는 "빵틀"처럼 개념적인 의미이고 객체는 "빵"처럼 구체적인 의미입니다.


클래스는 속성과 메서드(행위)로 구성됩니다.

클래스 (자동차)

[자가용] 바퀴4개, 휘발유 / 전진, 후진 ...
[버스] 바퀴 4개, 경유 / 전진, 후진
[택시] 바퀴 4개, LPG / 전진, 후진


>> 클래스 (Class)
하나 이상의 유사한 객체들을 묶어 공통된 특성을 표현한 데이터 추상화(모델링)를 의미

공통된 속성과 연산을 갖는 객체의 집합 (객체의 일반적인 타입)

인스턴스 (instance) : 클래스에 속한 각각의 객체 (객체는 클래스의 인스턴스)

[형식]

접근제한자 class 클래스이름{}

>> 객체 (Object)
클래스의 인스턴스이며 객체들 간의 상호작용은 메시지를 통해 이루어진다.

* 메시지 : 객체들 간에 상호작용을 하는데 사용되는 수단


[형식]
클래스이름변수=new 클래스이름();

데이터: 객체가 가지고 있는 상태 (속성, attribute, 변수, 자료구조)

[형식]
객체.속성이름

연산자 : 객체의 데이터를 처리하는 행위 (method, 동작, Operation, 함수)

[형식]
객체.메소드이름()

!---------- Day2 ----------

입/출력 함수:
출력 : System.out.print(sum);

publice class Exfirst {
    public static void main(Stirng[] args) {
  		int i = 0, sum = 0;
		while (i < 10){
			i = i + 1;
			sum = sum + i;
		}
		System.out.print(sum);
	}
}


출력 후 줄바꿈 :  System.out.println(sum);

jAVA 언어

!---------- Day3 ----------

>> JAVA 문법:
C 기반으로 C와 동일하나 C언어와 다른점

1) 배열 선언
C언어 : int a[10];
JAVA언어 : int a[] = new int[10];

2) scanf;

자바는 import java.uti.Scanner; 로 Scanner 클래스를 불러와 데이터를 입력 받아 사용할 수 있도록 선언을 해주어야 합니다.

Scanner scanf = new Scanner(System.in);

int k;
k = scanf.nextint(); 정수형으로 입력 받기
scanf.close(); 메모리에서 해제(메모리를 다른 프로그램에서 사용)

3) while(1)
자바에서 while(true)로 반드시 해야합니다.

[C언어] 0은 false이고, 나머지 다른 것들은 전부 true로 처리됩니다.
 
[JAVA] Boolean(True 또는 False)이 아니면 while문 실행이 불가능합니다.

4) for문
[C언어] for(int i = 1; i<5; i++)

[JAVA언어] C와 동일하게 for(int i = 1; i<5; i++) 혹은
int[] a = {1,2,3,4,5}; 
for(int i:a) 배열a의 개수 만큼 반복


5) 문자열 
[C언어] 배열을 이용하여 char str[10] = "first";

[JAVA언어] 문자열 클래스에서 문자열 객체 변수를 이용 String str = "first";


>> 접근 제한자

[접근제한자] class 클래스명{
멤버 변수
메서드
}

접근 제한자는 private ⊂ default ⊂ protected ⊂ public

1. public
모든 접근을 허용

2. protected
동일 패키지내의 클래스에 있는 클래스에서도 접근 가능하다
다른 패키지의 상속 관계(하위 클래스)에 있는 클래스에서도 접근 가능하다
(상속 관계가 없는 다른 클래스는 접근 차단)

* 패키지 : 폴더와 동일한 개념, 비슷한 성격의 자바 클래스들을 묶은 자바의 디렉토리
* 상속 : 부모 클래스의 메소드와 변수들을 물려받아 그대로 사용 가능하게 해주는 개념

3. default
아무런 접근 제한자를 명시하지 않는 경우입니다.
자신을 포함하는 패키지에서만 접근 가능합니다.

4.private
자신을 포함한 "클래스"에서만 접근가능
외부에 있는 클래스의 접근 차단

클래스 제한 가능 제한자: public, default
변수/메소드 제한 가능 제한자: public, protected, default, private

!---------- Day4 ----------

key point : 상속, 다형성(오버라이딩, 오버로딩), 캡슐화, 정보은폐

! 상속 inheritance

하위 클래스는 상위 클래스의 메소드와 변수들을 정의하지 않고 바로 사용합니다.

물려받는다고 생각하면 됩니다.

[형식]
class 하위 extends 상위

! 다형성 Polymorphism
메시지에 의해 객체가 연산을 수행하면 하나의 메시지에 대해 각 객체가 가지고 있는 고유한 방법으로 응답하는 것

오버라이딩 : 올라탄다!, 부모 클래스의 메소드를 자식 클래스에서 재정의하여 사용

오버로딩 : 싣는다!, 매개변수의 수 또는 타입을 달리하여 구분하여 다양한 응답

>> 오버라이딩 overriding
하위 클래스에서 부모 클래스의 메소드를 재정의하여 사용합니다.

클래스 내에서 부모 클래스 메소드보다 우선 순위가 높습니다.

[형식]
상위 클래스명 객체변수 = new 하위 클래스 생성자;

>> 오버로딩 Overloading
하나의 클래스 내에서 "같은 이름"으로 여러 개의 메소드를 정의합니다.

다양한 유형의 호출에 대응할 수 있는 기능입니다.

같은 이름의 함수를 여러 개 정의하고, 매개변수의 유형과 개수를 다르게 합니다.

재사용성을 높여줍니다.

class A {
	public void show(){
		System.out.println("null");
		}
    public void show(int a){
		System.out.println(a);
		}
	public void show(inat a, int b){
		System.out.println(a+","+b);
		}

사용 하는 법

publid class myfirst{
	public static void main(String [] args){
		A a = new A();
		a.show();
		a.show(10);
		a.show(10,20);
	}
}



! 캡슐화 Encapsulation
데이터의 속성과 행위를 하나의 객체로 묶어 구성합니다.

다른 객체가 접근할 수 없도록 합니다.

클래스를 선언하고 그 클래스를 구성하는 객체에 대한 접근 제한자를 선언하여 처리합니다.

! 정보 은폐 Information Hiding
객체는 다른 객체로부터 자신의 자료를 숨기고 자신의 연산만을 통하여 접근을 허용하여 프로그램의 변경에 대한 오류를 없애줍니다.

728x90

'자격증' 카테고리의 다른 글

컴퓨터 공학 기초  (0) 2023.03.05
프로그래밍 언어 : 파이썬 편  (0) 2023.03.05
프로그래밍 언어 : C언어 편  (0) 2023.03.03

댓글