반응형

[학습일지] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강 4주차


 

Java & SpringBoot로 시작하는 웹 프로그래밍 강의는 전체 분량이 8주 분량이고 이번이 4주차로 절반이 지났다.

4주차에서는 3주차에 이어서 객체에 대해서 좀 더 깊게 다룬다.

 

 


상속

 

자바에서 모든 클래스는 Obejct class를 상속받는다.

상속은 extends 키워드로 단 하나의 클래스만 상속 가능하다.

 

클래스가 생성되는 순서는 부모 클래스 -> 자손 클래스이다.

그 이유는 super 키워드 때문인데, super 키워드는 생성자 제일 상단에 위치하여 부모 클래스의 생성자를 호출한다.

자손은 부모의 필드와 메서드를 상속받지만 생성자는 상속받지 않는다.

 

부모 클래스는 일반적인 개념이고

자손 클래스는 부모 클래스를 좀 더 구체화한 개념이다.

 

 

main에서 Child의 생성자를 이용해서 인스턴스를 생성하면

Child class 생성자에서 super()로 Parent class의 생성자를 호출하고

Parent class 생성자에서 super()로 Object class를 호출한다.

 

호출 순서: main -> Child -> Parent -> Object

생성 순서: Object -> Parent -> Child -> main

 

super() 키워드는 항상 생성자의 첫 줄에 위치하고 있어야 하며 이는 this()와 같다.

그러므로 한 생성자에서 super()와 this()를 같이 사용하는 것은 불가능하다.

 

 기본 생성자와 마찬가지로 명시하지 않았다면 super()를 컴파일러가 자동으로 추가한다.

상위 클래스에 기본 생성자가 없다면 super(변수)로 명시적으로 부모 생성자를 호출해줘야 한다.

 


 

부모 클래스에는 parentMethod가 있다.

자손 클래스에는 childMethod와 부모 메서드를 재정의한 parentMethod가 있다.

 

 

Child 인스턴스의 타입이 Child라면 부모 메서드와 자손 메서드를 전부 사용할 수 있다.

이때 부모 메서드를 자손 메서드가 오버 라이딩했다면 오버 라이딩된 자손 메서드를 사용한다.

 

형 변환하여 타입을 부모로 바꾸게 되면 자손 메서드를 사용할 수 없게 된다.

타입이 부모이므로 자손 필드와 메서드에 접근할 수 없게 된다.

 

단, 부모 메서드가 오버 라이딩되어있다면 오버 라이딩된 메서드를 사용한다.

오버라이딩된 메서드를 통해 자손의 필드와 메서드에 접근하여 사용할 수 있다.

 

 


추상 클래스

 

추상 클래스는 추상 메서드를 1개 이상 갖고 있는 클래스이다.

추상 메서드는 구현부가 없는 메서드이다.

 

추상 클래스는 인스턴스화 될 수 없고 자손 클래스가 상속하여 사용한다.

상속받은 자손 클래스는 추상 메서드를 모두 구현해야 한다.

 

 

 


 

 

 

 

반응형
반응형

[학습일지] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강 3주차


Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강을 수강한 지 3주차가 되었다.

3주차에서 배운 내용은 객체의 기본적인 작성 내용을 배운다.

추가로 배열에 대해서 배우는데, 이러한 배열을 더 손쉽게 다룰 수 있도록 도와주는

JAVA API인 ArrayList에 대해 배웠다.

 


3주차

 

3주차에서 다루는 객체지향의 특징은 정보은닉과 캡슐화에 대한 내용이다.

정보은닉은 멤버 변수가 특정 범위나 특정 조건을 만족해야 할 때 외부에서 함부로 변수 값을 조정하지 못하도록 하는 것이다.

캡슐화는 클래스의 구현된 함수를 통해 객체간의 협력을 가능하도록 하여, 낮은 결합도를 유지할 수 있다.

 

객체를 정의할 때 정보은닉과 캡슐화에 유의하며 구현하게 되면

객체간의 협력을 할 때 오류를 최소한으로 낮추고 효율적으로 객체를 이용할 수 있다는 장점이 있다.

 

 

강의 내용을 토대로 하나의 객체를 작성했다.

 

클래스 멤버

해당 클래스는 글 번호, 글 제목, 글 내용의 정보를 갖는 클래스다.

인스턴스 변수는 외부에서 접근하지 못하도록 접근제어자를 private로 설정하였고,

생성자 오버 로딩을 통해 생성자는 2개로 구성했다.

 

생성자의 접근제어자는 default이므로 같은 패키지에서만 인스턴스를 생성할 수 있을 것이다.

글 번호마다 번호를 부여해야 하므로 클래스 변수를 하나 생성해두었고,

인스턴스가 만들어질 때마다 하나씩 증가하여 해당 인스턴스의 글 번호로 사용되게 하였다.

 

메서드

메서드의 종류는 총 4가지로 구성했다.

글 제목과 글 내용을 보여주는 showPost,

제목을 수정하는 modifyTile,

글 내용을 수정하는 modifyText,

생성된 글의 총개수를 보여주는 postCount를 만들어 두었다.

 

 

 

메인에서 만들어진 객체를 생성하여 각 기능을 사용하면 다음과 같다.

 

 


 

추가로 강의를 수강하기 이전에 강의 제목만 보고

학생들이 운송 수단을 타고 이동하는 객체 협력을 구현해봤는데,

매끄럽게 구현되지는 않았다.

 

객체 간의 협력은 Trans 클래스의 getMoney 함수를 통해 이루어진다.

학생이 Trans.getMoney()를 이용해서 각자가 내는 돈을 Trans 객체가 계속해서 모으며

학생은 Trans.paymoney 객체의 설정된 비용만큼 자신의 돈을 소모한다.

 

 

 

main함수에서 객체를 생성하고 출력 결과는 다음과 같다.

 

 

 


배열에 대한 사용 부분은 이전에 작성한 글이 있어서 따로 이곳에 작성하지 않았다.

https://komas.tistory.com/58

 

[JAVA] 자바 배열 array 사용법

[JAVA] 자바 배열 array 사용법 자바의 배열 기본적으로 배열이란 하나의 공통 타입을 갖는 여러 개의 변수들을 모아서 관리하기 위해 사용합니다. 여러 변수들을 라인마다 입력하는 것 보다는 사

komas.tistory.com

 


 

반응형
반응형

 


[학습일지] Java & SpringBoot로 시작하는 웹 프로그래밍 : 자바 인강 2주차


 

내일 배움 카드를 통해 패스트캠퍼스에서 자바 스프링 강의를 수강 중에 있습니다.

이번 주차는 2주차로 자바에서의 조건문, 반복문인 제어문을 배웠고, 객체의 초반부 강의를 수강했습니다.

이를 정리, 기록하고자 글을 작성합니다.

 


  • 조건문
  • 반복문
  • 객체 기초

자바 조건문 - if else, switch

 

if else

 

조건문은 if문의 내부 조건이 참이라면 해당 부분만 동작하고 아래 else if, else 문은 동작하지 않습니다.

만약 if문이 거짓이고, else if가 참이라면 마찬가지로 else if가 동작하고, 아래 else 문은 동작하지 않습니다.

즉, else 문은 if, else if 가 모두 거짓이어야 그때서야 동작합니다.

 

if와 else if는 내부 조건을 확인하여 동작하는 같은 역할이지만 상호 배타적으로 한쪽이 동작하면 다른 쪽이 동작하지 않습니다.

제어가 위에서 아래로 내려오면서 condition을 확인하므로 우선권은 if문이 갖습니다.

else if는 여러 개 작성이 가능합니다.

 

 

 

switch

 

다른 조건문으로 switch 문이 있습니다.

switch의 내부 조건을 확인하고 일치하는 case로 제어를 넘겨줍니다.

조건은 정수, 문자열, 상수가 가능합니다. 변수, 실수는 불가능합니다.

break가 없다면 해당되는 case 아래 case들을 모두 실행하므로 break를 적절히 사용해주어야 합니다.

 


자바 반복문 - while, for

 

while

 

자바에서의 반복문으로 while이 있습니다. while은 condition이 true일 때 계속 동작을 하다가 false가 되면 종료를 합니다.

해당 코드는 5 미만일 때 종료가 될 것처럼 작성했지만 사실 4일 때 while문으로 들어가서 5를 만들기 때문에 최종적으로 sum은 5가 됩니다.

 

 

for

 

다른 반복문인 for문은 (초기식, 종료식, 증감식)으로 구성되어 있습니다.

초기식은 반복 횟수를 위해 사용할 변수를 초기화해줍니다.

종료식은 반복문이 언제 종료될 것인가를 결정합니다.

증감식은 반복 횟수를 위해 사용할 변수를 증감해주는 역할을 합니다.

쉼표를 기준으로 초기식에 여러 변수를 선언할 수 있고, 증감식에도 여러 변수 증감이 가능합니다.

코드는 while때와 마찬가지로 i가 0부터 4까지 총 5회 반복을 진행하기 때문에 sum은 5가 됩니다.

 

 


자바 객체 

 

객체지향 프로그래밍이란 현실 세계의 구체적, 추상적 단위를 객체로 설계하여 각 개체의 속성, 기능을 통해 협력하여 동작하도록 하는 것입니다.

 

객체를 클래스로 구현하는 방법

  • 속성은 멤버 변수로 선언
  • 기능은 메서드로 선언

member

객체의 속성은 클래스 내부에 작성합니다.

 

 

method

객체의 기능인 메서드는 반환 타입, 함수명, 매개변수, 몸체로 구현합니다.

 

 

객체의 생성

객체는 new 연산자를 통해 인스턴스로 생성되고 생성된 인스턴스는 힙 메모리에 동적 할당됩니다.

인스턴스가 사용되지 않으면 가비지 컬렉터가 사용하지 않는 인스턴스를 제거합니다.

 

생성자

생성자는 객체의 멤버 변수를 초기화해주는 역할을 합니다.

new 연산자를 통해 인스턴스를 생성할 때 초기화해줄 수 있습니다.

매개변수가 없는 기본 생성자는 컴파일러가 추가해주지만, 생성자를 작성하게 되면 기본 생성자를 추가하지 않습니다.

생성자는 오버 로딩이 가능합니다.

반응형

+ Recent posts