[Java] 01 Java is fun..?
01 Java의 특징
쉬운 유지보수
자바가 나오기전 대표적인 객체지향 언어는 C++이였고, 가전 제품 내부에 사용할 수 있는 안정된 프로글램을 개발하는데 C++이 적합하지 않아 안정된 프로그램 개발 위해 자바를 만들었다고 한다.
👉객체지향 프로그램이란?
객체 지향 프로그램이란 일의 순서대로 프로그래밍 하는 것이 아닌 여러 객체의 협력을 통해 프로그램을 구성하는 것이다.
예를 들면, 쇼핑몰 사이트에 접속하여 상품을 주문하고 상품이 집까지 배송되는 과정을 생각하면 회원, 상품, 주문, 배송이 객체.
객체를 기반으로 각개체의 상호 관계를 이용하여 프로그래밍 하는 것이다. 객체 지향 언어로 프로그래밍하면 공통적으로 사용하는 부분을 수정하지 않고도 프로그램에 새 기능을 추가 가능 해서 유지보수가 쉽고 확장성이 좋다.
안정적인 프로그램
자바는 비교적 최근에 출시된 언어로 모호성과 불안정한 부분을 개선했는데, 자바는 사용하지 않는 메모리를 주기적으로 자동으로 수거하여 메모리를 효율적을 관리할 수 있다.
풍부한 기능 제공
자바는 기본 기능을 제공하는 클래스뿐 아니라 자료 구조, 네트워크, 입출력, 예외처리 등에 최적화된 알고리즘 라이브러리를 제공하는 자바 개발 키트(JDK)가 있어서 프로그램을 빠르게 완성할 수 있다. 자바는 오픈소스이고 자바를 활용한 오픈소스가 이미 많이 개발되어 있으므로 오픈 소스를 연동하여 더 풍부한 기능을 빠르게 구현할 수 있다.
02 Java의 활용
자바를 사용해서 어떤 프로그램을 만들 수 있을까요?
웹서버
검색 사이트, 쇼핑몰, 금융사이트 등 흔히 이용하는 사이트가 자바로 개발한 웹 서버 프로그램으로 운영된다.
안드로이드 앱
안드로이드폰에서 사용하는 앱을 만들 수 있는 프로그래밍 언어 중 하나가 자바이다.
게임
게임을 만들 땐 주로 C, C++언어를 사용하지만, 마인크래프트처럼 자바도 게임을 구현하는데 종종 사용된다.
03 명명 규칙
- camelCase - 변수, 메소드에 사용
- SCREAMING_SNAKE_CASE(UPPER) - 상수에 사용
- PascalCae - class에 사용
04 변수 선언
Java는 python과 다르게 변수 선언시, 변수의 자료형을 먼저 선언하고 자료형에 맞는 값을 선언해줘야 한다.
python보다 더 깐깐한 언어이다. 변수 이름 생성하고 자유롭게 다양한 자료형의 값을 대입했던 python과 달리 선언한 자료형에 부합하는 값을 대입해줘야하기 때문이다.
- Java 문법
int level; // 정수형 변수 level 선언
level = 10;
변수를 선언함과 동시에 값 대입하는 방법도 가능하다.
int level = 10;
- Python 문법
level = 10
05 변수의 종류
타입에 따른 구분
정수형 | 문자형 | 실수형 | 논리형 |
byte | char | float | boolean |
short | double | ||
int | |||
long |
- 문자형(char) 코딩
package chapter2;
public class ChracterEX1{
public static void main(String[] args){ // main 함수(프로그램의 첫 시작점)
char ch1 = 'A'; // 문자 자료형
System.out.println(ch1); // 문자 출력
System.out.println((int)ch1); // 문자에 해당하는 정수값 출력
}
}
선언 위치에 따른 구분
변수의 종류 | 선언 위치 | 생성시기 | 메모리 위치 |
클래스 변수 | 클래스 영역 | 클래스가 메모리 올라갈때 | Method Area |
인스턴스 변수 | 인스턴스 생성시 | Heap Area | |
지역 변수 | 메서드 영역 | 변수 선언문 수행시 | Stack Area |
06 클래스, 객체 생성
👉객체란?
'학생이 밥을 먹는다'는 행동을 보면, 학생이라는 객체와 밥이라는 객체가 있다. 객체간의 협력으로 먹는다라는 행위가 이루어진다.
객체 지향 프로그램은 먼저 이렇게 객체를 만들고 객체 사이에 일어나는 '먹는다'라는 일을 구현하는 것이다.
👉클래스란?
객체 지향 프로그램은 클래스를 기반으로 프로그래밍한다. 클래스는 객채의 속성과 기능을 코드로 구현한 것이다. 객체를 클래스로 구현하는 것을 클래스를 정의한다라고 한다. 클래스를 정의하려면 클래스 이름과 클래스가 가지는 속성 또는 특성이 필요하다.
학생이라는 객체를 생각해보면, 객체를 표현할 클래스의 이름이 필요하다.
또한, 학생 객체가 가지는 일반적인 속성인 학번, 이름, 학년, 성별 이러한 속성(특성)들이 필요하고 속성을 클래스 내부 변수로 선언한다. 이렇게 선언하는 클래스의 속성을 멤버 변수라고 한다.
- 학생 클래스 만들기
package Classpart;
public class Student { // 클래스 이름
int StudentID; // 학번: 멤버 변수
String studentName; // 학생이름: 멤버 변수
int grade; // 학년: 멤버 변수
String address; // 사는 곳: 멤버 변수
}