본문 바로가기
EXTERNAL ACTIVITY/Code Presso -웹개발 트랙 체험단-

<코드 프레소 웹개발 트랙> Java 프로그래밍 초급

by jaeaemin 2022. 1. 17.

 

 

SW 개발 방법론 :  요구사항 수집 - 요구사항 분석 - 고 수준 설계 - 상세 설계 - 구현 - 테스트

구조적 방법론, 정보공학 방법론, 객체지향 방법론, 컴포넌트 기반 방법론, 애자일 방법론 

각 방법론을 통해 효율적으로 소프트웨어를 개발 할 수 있음.

 

 

객체 지향 프로그래밍(Object Oriented Programming)

코드를 그룹화 된 책임을 가진 객체를 중심으로 SW 설계/개발 패러다임이다.

다수의 객체가 각자 역할을 수행하고, 객체 간에 데이터를 주고 받으면서 전체 시스템을 구성한다.

절차 지향 - 시스템의 행위에 집중한다.
( 동작하는 함수 설계/구현)
객체 지향 - 시스템에 참여하는 요소(객체)들에 집중한다.
 ( 객체의 속성과 기능 그리고 객체 사이 연결 )

 

객체 지향 프로그래밍이 가지는 장점 

  • 복잡한 SW 시스템이 역할/책임에 따라 모듈화 가능하다.
  • SW 구성 요소 간 명확한 커뮤니케이션이 가능하다.
  • 결과적으로 SW의 유지보수가 용이해진다.

 

클래스와 객체 

 객체 : 속성(데이터)과 행동(메소드)을 가지고 있는 사물

 클래스 : 객체를 생성 할 수 있는 설계도

 

 

클래스는 어떻게 만들어지는가?

구체적(Concrete) : 하나의 객체에 대해서 구체적으로 표현하는 것.

추상적(Abstraction) : 구체적으로 많은 정보들을 필요한 부분만 추출해 추상적으로 표현하는 것.

추상화 : 특정 객체에 반드시 필요한 속성행위를 정의하는 과정 => "클래스의 설계과정"

 

  • 좋은 클래스는 꼭 필요한 최소한의 속성/행위만 존재한다.
  • 속성과 행위 모두 특정 객체와 높은 관련성이 있어야 한다.
  • 큰 규모의 클래스는 역할에 대해서 분할 할 필요가 있다.

 

 

 

 

Java 클래스 선언 & 객체 생성

클래스 선언 예시

  • 클래스 이름은 주로 명사로 작명  - User, Car.. 
  • 대문자로 시작하여, 단어가 연결될 경우 각 단어 첫 문자를 대문자로  - CoffeeMaker ..
  • 클래스 이름은 객체를 잘 표현하는 의미있는 이름으로 작명
[접근제어] class 클래스이름 {
	타입 변수이름;
	타입 변수이름2;
    
	리턴타입 메소드이름1(인자){
       ..
	};
    
	리턴타입 메소드이름2 (인자){
	};

 

클래스 용어

변수 멤버 변수  /   인스턴스 변수
메소드 메소드  /  인스턴스 메소드

 

객체 생성 

객체는 클래스로부터 변수와 메소드를 가진 객체로서 생성되게 된다. 

클래스명 객체명 = new 클래스명()
public class NewTubeSystem {
	public static void main(String[] args) {
    	User steve = new User();
	}
}

 

객체의 멤버 변수 접근

객체명 . (멤버 변수 or 메소드)

점 연산자 ( dot operator )로 객체의 멤버에 접근 가능 

- 멤버 변수, 메소드 등 

 

예제

steve.email = "dudrn1947@gmail.com"
steve.password = "zxc123"
steve.nickname = "jobs"
steve.age = 22;

System.out.println("user info" + 
		    "\n email" + steve.email +
                    "\n age" + steve.age);

steve.[변수명] 을 통해서 user 클래스의 steve 객체의 변수를 저장/접근 할 수 있다.

 

  • 하나의 클래스로 여러 개의 객체를 생성할 수 있고, 각 객체는 독립적으로 참조되어 저장/관리된다.
  • 클래스느 객체 생성을 위한 설계도로, 속성과 행위에 대한 정보 포함
  • 클래스의 선언은 class 키워드로 하여 멤버 변수와 메소드를 포함한다.
  • new 키워드로 객체를 생성하여 참조 정보를 변수에 저장한다.
  • 점 연산자를 사용하여 객체의 멤버에 접근 가능하다.

 

 

 

 

함수와 메소드

 

메소드(Method)

  • 객체는 속성과 행위를 가지는 데, 메소드는 객체의 행위를 정의하고 I/O가 존재한다.
  • 메소드는 특정 객체에 포함되고, 독립적으로 존재하지는 않는다(종속적).
  • 이름은 행동을 표현하기 위해 주로 동사로 시작하고 의미있도록 작명한다.
  • 데이터를 전달하지 않아도 연산과 출력이 가능하다.
  • 첫 단어는 소문자로 , 2개 이상의 단어 연결 시 첫문자를 대문자로 표시한다
  • getUserInfo() , signUp() ...

 

함수(funtion/procedure/sub-rutin)

  • 특정 작업을 수행하기 위한 코드들의 집합으로 구분해 코드 중복을 줄임.
  • 특정 작업의 코드들을 모듈화하여 필요한 경우 호출

 

함수 메소드
- 함수는 독립적으로 존재
- 함수는 특정 작업에 필요한 데이터를 모두 제공
- 메소드는 특정 객체 내부에서 존재
- 객체의 멤버 변수에 대한 연산이 가능
- input은 1개 이상의 파라미터 리스트
- output은 없거나 리턴 값으로 표시


[접근 제어] [리턴] [메소드이름](파라미터 .. ){
구현 코드 + 리턴
}

 

접근제어자  

 

캡슐화 

  • 객체의 속성과 행동을 하나의 단위로 그룹화하는 것 
  • 객체의 속성과 행동을 은닉(Information Hiding)
  • 은닉이란 반드시 필요한 정보만 제공하고, 외부에서의 접근을 막고 오류를 방지
  • 반드시 필요한 멤버만 외부에 노출하여 결합도를 줄일 수 있음.
  • 객체 간의 관게의 양을 조정하여 좋은 설계를 만들 수 있다.
  • 접근 제어자를 default로 두지 말고 반드시 적절하게 명시해야 함.

 



- 정보은닉이 되지 않으면 외부에 노출되는 객체의 정보가 많아짐

-정보 은닉을 통해서 외부와 접근되는 변수/함수를 최소화하고 ,
   접근되는 원소들을 통해서 내부에서 작업을 진행한다.

 

캡슐화를 가능하게 해주는 것은 자바에서 " 접근 제어자 " 를 통해 가능하게 할 수 있다.

  • 접근제어자는 클래스 키워드 앞에 명시한다.
  • 멤버 변수에서는 자료형 앞에 명시한다
  • 메소드는 리턴 타입 앞에 명시한다.

 

JAVA의 접근제어자

JAVA의 접근 제어자 종류

  • private 접근 제어자로 설정된 변수는 클래스 내 메소드를 통해 변수를 다룰 수 있다.
  • (예) 생성자를 통한 초기화 , getter/setter로 변수에 접근 
  • 대부분의 변수는 private로 지정하는 것이 이상적이다. 

 

 

 

 


 
- 코드프레소  Java  웹  개발  체험단  활동  중    
- 코드프레소  웹개발 트랙의 "  " 내용입니다.
- 코드프레소  URL: https://www.codepresso.kr/ 

 

프리미엄 IT 교육 서비스 - 코드프레소

 

www.codepresso.kr

 

반응형