날아라쩡글이의 블로그입니다.
공부 file 본문
- 프로그래밍 언어와 프로그램
- 프로그래밍 언어란 무엇인가?
프로그래밍 언어란 컴퓨터에서 사용할 수 있는 명령 또는 연산을 시킬 목적으로 설계되어 기계와 의사소통을 할 수 있게 해주는 언어를 뜻한다. 사람이 원하는 작업을 컴퓨터가 수행할 수 있도록 프로그래밍 언어로 일련의 과정을 작성하여 일을 시키는데, 쉽게 말하면 컴퓨터에게 명령을 내리기 위한 언어, 소프트웨어를 만드는데 기본이 되는 언어이다. computer의 comput의 단어의 뜻은 연산하다라는 뜻을 가진 단어로 연산 하는 도구에 연산 명령을 내릴 수 있는 언어가 프로그래밍의 언어이다.
- 프로그래밍 언어의 종류는 어떤 것들이 있는가?
먼저 나온 절차 지향 적인 언어이면서 짧고 간결하게 표시할 수 있는 C언어, C언어와 다르게 나온 객체 지향 언어로 언어로 된 Java, 현재 웹사이트, 서비스 개발, 데이터 분석 등 많은 곳에 쓰이고, 여러 언어 중 쉽고 문법이 간결하고 쉬우며 기본적인 Python , 유지 보수가 어려운 Perl, 동적으로 HTML의 페이지를 생성하기 위하여 만들어진 PHP, C의 단점을 보완하고 바꾼 C++언어,C++에서 발전된 C#, 동적 객체 지향 스크립트 프로그래밍 언어로 개발한 Ruby ,그리고 요즘 한창 인기 언어로 2017년 구글이 안드로이드 공식 언어로 채택한 Kotlin의 언어가 있다. 구글과 반대로 IOS와 macOS대상으로 쓰이는 언어인 Swift, 프로그래밍의 언어는 다양하게 발달되었다.
- 프로그래밍 언어의 역할은 무엇인가?
프로그래밍 언어의 역할이란 사람의 언어를 10진법과 여러 언어를 사용한다면 2진법 체계로 변환 시켜 프로그래밍이 가능하도록 하는 역할이다. 기계의 경우 사람의 언어를 바로 해독,해석할 수 없기 때문에 사람의 언어로 작성된 파일을 컴파일로 변환 시켜 기계가 알아들을 수 있도록 만들어주는 의사소통의 중요한 역할을 담당하고 있다.
- 프로그램이란 무엇인가?
프로그램이란 프로그래밍 언어를 이용하여 프로그램을 개발하는 행위로, 특정 응용에 맞는 자료구조 및 알고리즘을 적절한 프로그래밍 언어를 이용하고, 구체적인 프로그램으로 구현하는 것이다. 프로그램의 파일은 문장의 집합이며, 문장은 여러 표현식들로 구성되어 있어 그 결과에 따라 컴퓨터에 명령을 내린다.
- 소스 파일과 실행 파일은 무엇인가?
소스 파일이란 사람의 언어로 작성된 문서로써 기계어로 변환시키기 전 특정 응용에 맞는 자료구조 및 알고리즘으로 적절한 프로그래밍 언어로 구체적인 프로그램을 구현하는 것을 의미한다. 실행 파일이란 기계어로 코드화 된 명령에 따라 지시 된 작업을 수행하도록 하는 컴퓨터 파일을 말한다. 사람의 언어는 컴퓨터, 기계에서 쓰이는 언어와 다르기 때문에 .java라는 확장자로 기계에 명령을 내리는 사람의 언어로 된 소스 파일을 컴퓨터가 바로 실행할 수 없고 .class의 확장자로 변경(컴파일), 소스 파일에 작성된 사람의 언어를 기계어로 번역하는 일련의 과정을 거쳐야 실행 파일로 변경되어 컴퓨터가 지시 된 작업을 실행하게 된다.
- 자바
- 자바 프로그래밍 언어의 특징은 어떤 것들이 있나?
자바 프로그래밍 언어의 특징으로는 먼저 운영 체계가 독립적이라는 특징을 가지고 있다. java의 경우 JVM이라는 '자바의 언어를 실행하기 위한 가상 컴퓨터'가 존재하며, 프로그램의 운영체제나 하드웨어가 아닌 JVM하고 통신하고, 자바응용프로그램으로부터 전달 받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달하여, 자바로 작성된 프로그램은 운영체제와 하드웨어와 관계없이 실행 가능하게 만들어, 운영체제에 적용하기 위해 많은 노력이 필요하지 않다는 장점이 있다. 두 번째는 객체 지향 프로그래밍 언어라는 것이다. '캡슐화,상속,추상화,정보 은닉,다형성'이라는 특징을 잘 적용한 순수한 객체 지향 언어라는 평가를 받고 있다. 세 번째는 다른 언어에 비하여 상대적으로 배우기 쉽다는 특징을 가지고 있다. 객체 지향 언어의 장점인 복잡하고 불필요한 부분은 과감히 제거하고, 단순화함으로서 쉽게 배울 수 있으며, 간결하고 이해하기 쉬운 코드를 작성할 수 있도록 하여 상대적으로 배우기 쉽다는 특징을 갖고 있다. 네 번째는 garbage collector(가비지 컬렉터)가 자동적으로 메모리 관리를 해주기 때문에 프로그래머는 메모리를 따로 관리하지 않아도 된다는 특징을 가지고 있다.
- 자바 프로그램을 개발하기 위한 개발 환경은 어떻게 구축하는가
자바 프로그램을 개발하기 위한 개발 환경을 작성하기 전 자바가 돌아가는 시스템에 대해서 먼저 작성을 하면, java 로 작성된 실행 파일을 java는 Tool 을 이용하여, compile을 진행, 확장자명을 .class로 변경을 해준다.그리고 JRE를 통하여 확장자명이 class인 파일을 실행시켜준다. 이런 실행 환경과 개발 환경을 지원해주는 부분을 JDK 라고 한다. 이런 시스템을 이용하여 개발하는 개발 환경을 구축하는 방법으로는 다음과 같은 방법을 이용한다.
먼저 java.sun.com 으로 들어간다. 그리고 JDK download를 클릭 후 사용 중인 OS에 맞는 자바 개발 키트를 다운로드 한다 . install 파일을 다운 받고 실행시켜 간단히 설치해준다. 함께 JDK-documentation을 같이 다운 받는다. javac의 경우 java compile tool을 의미하고 이 파일을 이용하여 .class파일을 만들고 JRE에서 .class가 작동되도록 만들어주는 파일이 java.exe이다.
내 컴퓨터에 path를 입력해준다. 쉽게 compile이 가능하도록 하는 방법이다. 내 컴퓨터에서 오른쪽 버튼을 누르고 고급 시스템 설정을 클릭, 고급에서 환경 변수 클릭, 시스템 변수에서 적힌 path를 더블 클릭하여 bin폴더에 적힌 경로를 ctrl+c와 ctrl+v를 이용하여 복사, 붙여 넣기를 해준다. 그리고 시작에 cmd를 검색하여, console창을 띄어주고 cd\입력하여 root 경로로 나온 후 echo %path%를 입력하여 경로가 잘 복사가 되었는지 확인을 해준다. 그리고 실행 파일이 있는 파일로 들어가 실행이 되는지 확인한다.
- 자바가상머신의 역할은 무엇인가?
자바 가상 머신이란 'JVM'으로 자바 가상 머신의 약자를 줄여 부르는 용어이다. 하드웨어가 아닌 소프트웨어로 구현된 컴퓨터라는 뜻으로 java 라는 언어가 운영체제에 독립적일 수 있게 만들어주는 소프트웨어로 구현된 java만을 위한 컴퓨터라고 할 수 있다. 일반 어플리케이션의 경우 OS와 맞붙어져 있어 OS의 개발 형태에 따라 업데이트와 정보를 변경해 주어야 하며, OS에 종속적이기 때문에 OS에 맞게 변경을 시켜주어야 하지만, java의 경우 JVM을 사용하여 프로그램을 돌리기 때문에 OS에 맞춰 업데이트하거나 정보를 변경할 필요가 없고 OS에 종속적이지 않으며, 독립적인 플랫폼을 갖게 해준다. 이외에도 JVM은 프로그램의 메모리 관리를 알아서 해주는 Garbage Collector가 존재하여, background에서 접근불가능한 상태가 된 객체들의 메모리를 정리해주는 역할을 가지고 있다.
- 자바의 데이터 타입과 변수
- 프로그램에서 주로 사용되는 데이터에는 어떤 종류들이 있는가?
데이터의 종류에는 두 가지로 나뉠 수 있다. 첫 번째는 수치데이터로 정수와 실수로 나뉠 수 있는, 숫자로 표현이 가능한 데이터가 있으며, 비수치 데이터로 텍스트와 멀티미디어로 사용되는 수치화를 시킬 수 없는 데이터가 존재한다.
- 자바의 데이터 타입에는 어떤 것들이 있는가?
자바 프로그램에서 데이터에는 기본형 데이터와 참조형 데이터로 나눌 수 있다. 기본형의 경우 자주 사용되는 데이터들의 조합으로 8개로 나눠져 있다. 첫 번째는 논리 데이터 타입으로 참과, 거짓을 표현하는 값, 두 번째로는 문자 데이터타입, 세 번째는 정수 숫자 데이터 타입 마지막으로는 숫자 데이터 타입이지만 실수 데이터 타입으로 나눈다. 기본 적재를 위해서 정해놓은 기본형이라고 할 수 있으며, 나머지는 참조 데이터 타입이라고 말한다.
- 자바에서 정수, 실수, 문자, 문자열, 불린값을 어떻게 표현하는가?
자바의 정수의 표현 방법으로는 byte,short, int, long 로 작성을 하고, 소수점을 생략한 정수의 값으로 표현하며, long의 경우 끝에 L을 붙여서 표현한다. 정수의 데이터 타입을 선언할 때는 byte와 short의 표현 범위가 작아 overflow 라는 잘 못된 값이 출력할 수 있는 가능성이 있어서 int타입으로 선언하고, int의 범위를 넘어가는 수를 다뤄야 할 때에는 long 을 사용하여 표현하는 것이 좋다. .실수의 경우 float와 double 으로 사용하며, 소수점으로 표현한다. float의 경우 뒤에 f를 작성한다. 문자의 경우 char 으로 작성하며 char값으로는 문자 1가지만 ' '에 안에 입력을 할 수 있다. 문자열의 경우 String 으로 " "안에 입력하고 싶은 문자열을 작성한다. 불린값의 경우 boolean 으로 작성하며 true와 false의 값으로 참과 거짓으로 표현한다.
- 변수란 무엇인가?
변수란 값을 저장할 수 있는 메모리상의 공간을 의미한다. 이 공간에 저장된 값은 변경될 수 있다. 그러나 하나의 변수에 단 하나의 값만 저장할 수 있으므로, 새로운 값을 저장하면 기존의 값은 사라진다.
- 변수는 어떻게 정의하고, 초기화하고, 사용하는가?
먼저 입력할 변수의 데이터 타입에 대하여 생각을 한다. 저장할 변수의 값이 어떤 타입 인지 생각이 끝났다면, 변수의 이름을 생각하여, '값을 저장할 수 있는 메모리 공간'을 만들어 그 메모리 공간에 이름을 붙여, 값을 저장하고, 저장된 값을 읽어올 수 있게 만들어준다. 변수의 선언은 '변수의 데이터 타입 변수 이름;'으로 선언을 하는데 변수 타입에 알맞은 크기의 저장 공간이 확보되고, 확보된 저장 공간을 변수의 이름을 통해 사용할 수 있는 것이다.
변수를 선언했다면, 바로 사용이 가능하지만, 메모리의 경우 여러 프로그램이 고유 하는 자원이므로 현재 어떤 값이 저장 되어 있는지 모르기 때문에 변수를 초기화 해야 한다. 변수의 초기화란 '변수를 사용하기 전에 처음으로 값을 저장하는 것이라는 뜻'으로 변수에 원하는 값을 저장하는 방법이다. 변수에 값을 저장할 때, 값을 대입할 때에는 대입 연산자 '=' 를 사용한다. 대입 연산자의 뜻은 '오른쪽에 값을 왼쪽(변수)에 저장한다. '라는 뜻으로 왼쪽에는 반드시 변수가 와야 한다는 규칙이 존재한다.
- 자바의 주요 연산자
- 연산자란 무엇인가?
연산자는 ' 연산을 수행하는 기호'를 말한다. 연산자가 연산을 수행하려면 반드시 연산의 대상이 있어야하는데 이것을 피연산자라고 한다. 피연산자로는 변수, 상수 또는 식을 사용한다.
- 사칙연산자, 대입연산자, 증감연산자, 비교연산자, 논리연산자를 알아보자
사칙 연산자는 (+,-,*,/)로 더하기, 빼기, 곱셈, 나눗셈 할 수 있는 연산자를 의미한다. 여기에 % 나누기 연산자를 사용하면 산술 연산자라고 불린다. 비교 연산자의 경우( >,<,>=,<=,==,!=)으로 크고 작고, 다름과 같음을 비교하는 연산자이다. 대입 연산자의 경우 변수의 값을 입력할 때 사용한 (=)로 우변의 값을 좌변에 저장하는 연산자이다. 논리 연산자의 경우 (&&,||,!,&,|,^,~) '그리고(and)'와 '또는(or)'으로 조건을 연결하는 연산자이다. 증감 연산자란 피 연산자에 저장된 값을 1증가 또는 감소 시키는 연산자로 피 연산자는 정수와 실수가 모두 가능하지만,상수는 값을 변경할 수 없기 때문에 가능하지 않다. ++은 증가 연산자이고, --은 감소 연산자이다. 타입으로는 prefix(전위형) postfix(후위형)이 존재한다. 전위형은 값이 참조되기 전에 증가시키며, 후위형은 값이 참조된 후에 증가 시켜 수식이나 메서드 호출에 포함된 경우 전위형일 때와 후위형일 때의 결과가 다르다. 그러나 증감 연산자가 수식이나 메서드 호출에 포함되지 않고 독립적인 하나의 문장으로 쓰인 경우에는 전위형과 후위형의 차이가 없다.
- 자바 프로그램 실행하기
- 자바 프로그램의 기본적인 구조를 알아보자
자바 프로그램의 경우 한 개 이상의 class가 존재해야 한다. 그리고 클래스 안에는 한 개 이상의 메인 메소드가 있어야 한다. class명칭은 생성시에 정할 수 있으며 첫 글자는 대문자로 생성한다, 생성 후에 클래스 이름을 변경하면 오류가 생긴다.class 안에는 변수, 함수(method),상수의 요소를 작성할 수 있다. method의 경우 class 내부에 한 개의 main method()가 존재하며, 여러 종류의 메소드는 존재 가능하다. 한 개의 class 안에 두 개의 main method()는 존재할 수 없고, method() 내부에 method는 존재할 수 없다. main()method 는 반드시 public static void main()으로 선언이 되어야 하며,여러method 중에서 가장 먼저 실행된다. 그리고 실행될 내용의 실행문이 존재하고, 마지막으로 주석이 있다. 주석은 // 한줄 주석 과 /* 모두주석*/이 존재하는데, 둘다 프로그래밍에 방해는 되지 않고, 프로그래밍을 할 때 설명이나 특이사항을 적을 때 사용된다.
- 자바 프로그램에서 main메소드의 역할을 알아보자
main method에서 method의 단어를 직역하면, '함수'라는 뜻이고 함수의 경우 다수의 값을 입력 받을 수 있고, 내부 로직으로 input(입력값)을 받고 output(출력값)을 return(반환)하는 역할을 한다. (결과값이 0으로 없을 수도 있음) 그 중에서 main method는 JVM이 최초로 실행하는 메소드로 작성되어있지않다면 JVM은 코드를 실행시킬 수 없다.즉, main method는 프로그램을 실행시켜주는 역할을 담당한다.
- 자바 프로그램에서 수행문의 역할을 알아보자
자바프로그램에서 수행문이란 어느 일정한 규칙이 참이 될 경우 수행하게 될 문장을 의미한다. 수행된 문장의 경우 결과를 볼 수 있는 명령문을 실행하지 않으면 절대 눈으로 볼 수 없다. 결과를 봐야 이 프로그램이 내가 생각한 대로 잘 돌아가고 있는지 알 수 있기 때문에 수행문으로 출력문을 많이 사용한다. 출력문 중 첫 번째는 기본 출력문으로 println()을 많이 사용되며, 출력하고 싶은 내용 그대로 입력하여 출력한다. System.out.println("문자열"+변수명);으로 작성이 가능하다. 두 번째로는 printf()이다. println()은 변수의 값을 그대로 출력하므로, 값을 변환하지 않고는 다른 형식으로 출력할 수 없어서, printf()를 사용해 지시자를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력할 수 있다. System.out.printf("출력서식",출력내용);으로 작성된다.
- 자바 프로그램을 실행해 보자
(아래의 사이트에 접속하면 별도의 프로그램 설치없이 자바 프로그램을 온라인에서
직접 실행해 볼 수 있다.)
* https://www.tutorialspoint.com/compile_java_online.php
- 제어문과 반복문
- 제어문이란 무엇인가?
코드의 실행흐름은 무조건 위에서 아래로 한 문장씩 순차적으로 진행되었지만, 때로는 조건에 따라 문장을 건너뛰고, 때로는 같은 문장을 반복해서 수행해야할 때가 있는데, 이처럼 프로그램의 흐름을 바꾸는 역할을 하는 문장들을 제어문이라고 한다. 즉제어문이란 프로그램 실행 흐름을 개발자가 원하는 방향으로 바꿀 수 있도록 해주는 것을 말한다.
- 제어문의 종류에는 어떤 것들이 있는가?
제어문의 종류에는 조건문 , 반복문, 분기문으로 존재하는데, 조건문의 경우 if문과 switch문이 있고, 반복문으로는 for문과 while문이 있고, 분기문으로는 break,continue,return문이 존재한다.
- 제어문의 사용목적은 무엇인가?
제어문은 어떤 상황을 판단하여 결과를 true, false로 반환하여, 그 것에 맞는 값을 출력하게 되는데, 조건에 맞는 식을 출력할 수 있다는 장점과 반복문을 사용하여 어떤 작업을 반복적으로 수행하고 싶을 때 원하는 값만큼 출력이 가능하며, 세세한 조건을 통해 원하는 값을 출력할 수 있기 때문에 제어문을 사용한다.
- 반복문의 종류에는 어떤 것들이 있는가?
반복문은 어떤 작업이 반복적으로 수행되도록 할 때 사용되며,반복문의 종류로는 for문과 while문 그리고 while문의 변형인 do-while문이 있다. for과 while문에 속한 문장은 조건에 따라 한번도 수행되지 않을 수 있지만, do-while문에 속한 문장은 무조건 최소한 한 번은 수행될 것을 보장하는 문이다. for문과 while문은 구조와 기능이 유사하여 어느 경우에나 서로 변환이 가능하기 때문에 반복문을 작성해야할 때 for문과 whlie문 중 어느 쪽을 선택해도 좋으나 for문은 반복횟수를 알고 있을 때 사용한다.
- 클래스와 객체
- 클래스란 무엇인가?
클래스란 '객체를 정의해놓은 것으로 객체의 설계도 또는 틀' 이라고 정의한다. class는 객체를 생성하는 데 사용이 되며, 객체는 class에 정의된 상태로 생성된다.
- 객체란 무엇인가?
객체의 의미는 '실제로 존재하는 것' 이다. 우리가 주변에서 보는 사물이 곧 객체이다. 객체지향이론에서는 사물뿐만 아닌 무형적으로 이뤄진 수학공식, 논리, 개념 같은 무형적인 것들도 객체로 간주한다. 프로그래밍에서의 객체는 클래스에 정의된 내용대로 메모리에 생성된 것을 뜻한다.
- 클래스를 구성하는 구성요소는 무엇인가?
클래스는 멤버로 속성을 표현하는 클래스에 포함된 변수인 필드와 기능을 표현하는 메소드를 가진다. 클래스를 가지고 객체를 생성하면, 해당 객체는 메모리에 즉시 생성이 되는데, 객체의 생성과 동시에 인스턴스 변수를 원하는 값으로 초기화 할 수 있는 생성자라는 메소드를 가진다.
- 객체를 생성하는 방법은 무엇인가?
객체의 경우 설계도인 class를 바탕으로 만들어지는데, class에는 객체를 생성하기 위한 필드와 메소드가 정의가 되어있다. class로부터 만들어진 객체를 해당 클래스의 인스턴스라고 하는데, 클래스로부터 객체를 만드는 과정을 인스턴스화라고 한다. 하나의 클래스로부터 여러개의 객체(instance)를 만들 수 있다.
사용할 객체를 정했다면, 그 객체의 대표 이름을 하나 결정하고, 그것을 class의 이름으로 한다. class를 선언 후 객체를 생성하는 방법은 new연산자를 사용하는 것이다. new 클래스(); 으로 작성을 하는데, new연산자로 생성된 객체는 memory heap영역에 생성이 된다. 메모리 내에서 객체의 위치를 알 수 있도록, new연산자는 heap영역에 객체를 생성 후 객체의 주소를 반환한다. 그럼 반환 된 주소를 참조 타입인 class 변수에 저장해두면 변수를 통해 객체를 사용할 수 있다. 클래스 변수; 변수 =new class(); 로 클래스 변수 선언과 객체 생성을 한 개의 실행문으로 작성할 수 있다. 클래스 변수 = new 클래스(); new 연산자로 객체를 생성하고 반환 된 객체의 주소를 변수에 저장하면 변수가 객체를 참조하게 된다. 그럼 class는 하나 지만, new 연산자를 사용한 만큼 객체가 메모리에 생성된다. 이렇게 객체를 생성하고 사용한다.
- 클래스와 객체의 차이점은 무엇인가?
객체는 사람, 통장계좌, 자동차 등 개별적으로 구분할 수 있는 실체를 의미하는 것이다. 객체는 자신의 고유의 이름과 상태, 행동을 갖고, 객체의 상태(속성,특성)을 표현할 때 멤버 변수라고 표현하며, 객체의 행동(기능)을 메소드 혹은 멤버 함수라고 표현한다. app에서 확인버튼을 누르면 "확인버튼을 클릭하였습니다"라고 글자가 나오게 혹은 계좌의 송금업무를 처리하는 등의 다른객체에게 어떤 행동을 요청할 수 있다. 클래스는 객체의 상태와 행동이 어떻게 만들지를 결정한다. 즉, 클래스에서 버튼이라는 객체가 클릭되어지면, 다음 화면으로 이동하는 행동을 저으이하고, 지금 버튼의 이름을 지정하는 상태 등이 동작할 수 있게 정의가 되어있는 설계도 이다.
- 객체 생성하기
- 클래스를 정의해보자
- 클래스에 필드를 추가해보자
- 클래스에 메소드를 추가해보자
- 클래스로 객체를 생성해보자
- 클래스의 필드와 메소드를 사용해보자
class RunToy{ //class로 달리기 장난감을 만든다.
//장난감의 속성(멤버 변수)
String color; //색상
boolean power;// 전원의 값
int run;//달리기 속도
//장난감의 기능(메서드)
void power(){power = ! power;}// 전원을 켜거나 끄는 기능을 하는 메서드
void runUp(){++run;}//달리기 속도를 높이는 메서드
void runDown(){--run;} //달리기 속도를 낮추는 메서드
class RunToyFast{//장난감속도에 대한 메인 class
public static void main(String[] args){
RunToy toy1 = new RunToy();//toy class를 가져옴, 그리고 객체를 생성
RunToy toy2 = new RunToy();//toy class를 가져옴, 그리고 객체를 생성
System.out.println("장난감1의 달리기 속도는"+toy1.run+"입니다.");
System.out.println("장난감2의 달리기 속도는"+toy2.run+"입니다.");
toy1.run =12;//장난감 1의 속도를 변경함 12로
System.out.println("장난감 1의 달리기 속도는 12로 변경하였습니다. ");
System.out.println("장난감 1의 달리기 속도는"+toy1.run+"입니다.");
System.out.println("장난감 2의 달리기 속도는"+toy2.run+"입니다.");
- 객체지향 프로그래밍
- 상속이란 무엇인가?
객체지향 프로그래밍의 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해서 클래스를 작성하면 보다 적응 양의 코드로 새로운 클래스를 작성할 수 있고, 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 이러한 특징은 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다.
- 상속은 어떤 경우에 활용하는가?
공통적인 속성이 있을 경우, 묶어서 조상클래스로 묶어 재사용이 가능하게 만들고, 유지 보수를 쉽게 만들 수 있는 곳에 작성을 한다. 상속을 사용하면 유지보수가 쉬워지고, 확장성이 용이해지고, 모듈화를 통해 재사용이 가능해져서 코드가 간결해지기 때문에 공통적인 속성이 있을 경우 사용을 하면 좋다.
- 상속을 하는 방법은 무엇인가?
상속을 구현하는 방법은 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extends'와 함께 써주는 것이다. 상속해주는 클래스는 조상클래스이고 상속받는 클래스는 자손클래스라고 불린다.
- 클래스 상속하기
- 부모클래스를 정의해보자
class CutDog{//귀여운강아지에 대한 class 작성
//CutDog (){}//원래는 기본생성자
String color;// 색상
String kind;//종류
boolean food;//음식에 대한 진심
double kg;//몸무게
public CutDog (String color, String kind, String food, double kg){
//귀여운강아지의 this를 호출하기 위하여 this에 대한 객체를 생성해주어야 나중에 인식이 가능함.
this.color =color;
this.kind = kind;
this.food = food;
this.kg = kg;}
//CutDog(){
//this ("brown","치와와",true,4.80);}//이런식으로 this로 불러올 수 있음
//최고로 귀여운 강아지 클래스 작성
public class Jjungle extends CutDog{
//쩡글이 클래스를 생성
public Jjungle (String color, String kind, boolean food, double kg){
super (color, kind, food, kg);}}//super라는 키워드로 부모 클래스에 있는 속성을 참조함, super의 키워드는 부모클래스로부터 상속받은 속성이나 메서드를 자식 클래스에서 참조하는 데 사용하는 참조 변수
public class Main{//메인 메서드 작성
public static void main(String[]args){
//쩡글이 클래스 생성
Jjungle jjungle = new Jjungle (""brown","치와와",true,4.80);
System.out.println("최고로 귀여운 강아지의 정보는?");
System.out.println(jjungle.color);
System.out.println(jjungle.kind);
System.out.println(jjungle.food);
System.out.println(jjungle.kg);
'중앙 HTA (2106기) story > java story' 카테고리의 다른 글
java 기초적인 부분 (0) | 2021.08.30 |
---|---|
학원 공부 진행 방향 (0) | 2021.08.30 |
자바의 역사 (0) | 2021.08.11 |
editPlus으로 컴파일 실행방법 (0) | 2021.08.11 |
자바의 설치 다운로드(2021-08-10) (0) | 2021.08.10 |