- 생성자란? 

 생성자는 인스턴스가 생성될때 사용되는 인스턴스 초기화 메소드다. 즉, new와 같은 키워드로 해당 클래스의 인스턴스가 새로 생성될 때, 자동으로 호출되는 메소드다. 

 

 - 형식

클래스이름 (타입 변수명, 타입 변수명, ...) {
	인스턴스 생성시 수행할 코드 블럭
    변수의 초기화 코드
}

 생성자는 몇가지 다음과 같은 조건을 가진다.

 1. 생성자의 이름은 클래스 명과 같아야한다.

 2. 생성자는 리턴 값이 없다.

1. 클래스

 - 클래스(class)란 표현하고자 하는 대상의 공통 속성을 한 군데에 정의해 놓은 것이라고 할 수 있다. 즉 클래스는 객체의 속성을 정의해 놓은 것이다. 내부의 정보를 멤버 변수라고 한다.

 

 - 인스턴스(instance)란 어떠한 클래스부터 만들어진 객체를 그 클래스의 인스턴스라고 한다. 인스턴스의 멤버변수에 접근할 때는 [생성된 인스턴스.멤버변수]의 형식을 사용한다.

 

2. 메소드(method)

 - 어떠한 작업을 수행하는 코드블럭을 하나로 묶어놓은 것.

 -  메소드가 필요한 이유

  (1) 재사용성

    - 메소드를 만들어 놓으면 반복적으로 재사용 가능하다.

  (2) 중복된 코드 제거

    - 반복되어 작성된 코드들을 없애주어 효율적인 코드가 된다.

  (3) 프로그램 구조화

   - 긴 코드를 작성할 때, 보다 쉽게 수정 및 관리할 수 있다.

 

 

  - 코딩을 하다보면 조건에 만족할 때, 계속해서 반복해야하는 상황이 있다. 그럴 경우 사용하는 문법이다. 대표적으로 for문, while문, 그리고 do~ while 문이 있다.

 

 1) for문

 for문은 다음과 같은 형식을 가진다. 초기값이 조건식에 위배되지 않을 경우 실행 코드를 한바퀴돌게 된다. 만약 조건식이 증감식을 통해 위배될 경우 반복문이 종료된다.

for(초기값; 조건식; 증감식){
	실행 코드 블럭
}

 2) for ~ each문

 위 형식의 for 반복문 이외에도 for-each문을 작성할 수 있다. 해당 구문은 배열이나 Collection등에 사용이 가능하다

for (String day : days) {
	System.out.println(day);
}

 3) while문

while문은 조건식에 위배되지 않으면, 계속해서 반복해준다.

while(조건식) {
	실행 코드 블럭
}

단, 조건식이 계속해서 반복된다면 무한 루프에 빠지게 되므로, 항상 유의해야한다.

 

4) do ~ while 문

 while문과 다르게, 일단 코드 블럭을 실행 시켜준 다음, 조건문을 비교한다. 즉, 최소 한번은 실행되게 해준다. 형식은 다음과 같다.

do {
	실행 코드 블럭
} while (조건문);

 

5) contine, break

 반복문을 제어할수 있는 반복 제어문이다. 

 - break는 반복문 전체를 탈출하라는 의미의 제어문이다.

 - continue는 해당 반복문을 탈출하고 다음 반복문을 실행하라는 의미의 제어문이다.

 

1) 조건문이란?

 특정 조건에 따라 프로그램이 실행되기를 바라면 사용할 수 있다. 대표적으로, if문, switch ~ case 문, 삼항연산자가 포함된다.

 

2) if 문

 조건식에 따라, if 문 내부의 코드를 실행 시켜준다. 코드 형식은 다음과 같다.

if (조건식) {
	실행 코드
}
else if (조건식) {
	실행 코드
}
else {
	실행 코드
}

 

3) switch ~ case 문

 다양한 타입의 조건에 따라 구분하여 동작 시켜줄 수 있는 조건문이다. 코드 형식은 다음과 같다.

 

switch (입력 변수) {
	case 1: 실행 구문
    	break;
    case 2: 실행 구문
    	break;
    case 3: 실행 구문
    	break;
    default: 기본 실행 구문
    	break;
}

4) 삼항 연산자

 조건문을 간결하게 표현하기 위해 사용하는 코드이다.

(조건식) ? A : B

 

 - 연산자란? 

 연산자는 여러 변수들간의 계산 및 비교를 위해 사용된다.

 종류로는 산술연산자, 대입연산자, 논리연산자, 관계연산자가 있다.

 

 - 연산자의 종류

종류		연산자			우선순위
--------------------------------------------------------------------------
증감 연산자	++,--			1순위
산술 연산자	+,-,*,/,%		2순위
시프트 연산자	>>, <<, >>>		3순위
비교 연산자	>,<,>=,<=,==,!=		4순위
비트 연산자	&,|,^,~			~만 1순위, 나머지는 5순위
논리 연산자	&&, ||, !		!만 1순위, 나머지는 6순위
조건 연산자	?, :			7순위
대입 연산자	=, *=, /=, %=, +=, -=	8순위

 

1) 증감 연산자

 증감 연산자는 피연산자의 값을 1씩 증가 또는 감소 시키는 연산자이다.

연산자		설명
--------------------------------------------------------------------------
X++		연산을 수행한 후, 피연산자의 값을 1 증가시킨다
++X		연산을 수행하기 전, 피연산자의 값을 1 증가시킨다
X--		연산을 수행한 후, 피연산자의 값을 1 감소시킨다
--X		연산을 수행하기 전, 피연산자의 값을 1 감소시킨다

 

2) 산술 연산자

 기본적인 4칙 연산과 나머지를 값을 구하는 연산자를 포함한다

연산자		설명
--------------------------------------------------------------------------
+		두 수의 덧셈을 반환
-		두 수의 뺄셈을 반환
*		두 수의 곱셈을 반환
/		두 수를 나눈 후 몫을 반환
%		두 수를 나눈 후 나머지를 반환

 

3) 시프트 연산자

 bit 단위의 연산처리를 하는 연산자

연산자		설명
--------------------------------------------------------------------------
>>		bit 값을 오른쪽으로 이동시킨다
<<		bit 값을 왼쪽으로 이동시킨다
>>>		bit 값을 오른쪽으로 이동한다. 이때 이동시킨 값의 빈칸은 0으로 채운다

 4) 비교 연산자

 변수나 상수의 값을 비교할때 쓰인다. 결과값은 항상 true 나 false를 반환한다.

연산자		설명
--------------------------------------------------------------------------
>		크다
<		작다
>=		크거나 같다
<=		작거나 같다
==		피연산자들의 값이 같다
!=		피연산자들의 값이 다르다

5) 논리 연산자

 논리 연산자는 피연산자의 값이 true나 false인 논리값을 가지고 다시한번 조건 연산한다.

연산자		설명
--------------------------------------------------------------------------
&		그리고(and), 주어진 값들이 모두 true 일때만 true를 반환한다.
|		또는(or), 주어진 값들 중 하나라도 true 일때, true를 반환한다.
!		부정(not), true는 false, false는 true를 반환한다.
&&		선 조건이 true일 때, 후 조건을 실행하며, 선 조건이 false이면 후조건을 실행하지 않는다.
||		선 조건이 true일 때, 후 조건을 실행하지 않으며, 선 조건이 false이면 후조건을 실행한다.

 

7) 대입 연산자

연산자		설명
--------------------------------------------------------------------------
=		연산자 중심으로 오른쪽 변수값을 왼쪽 변수에 대입한다.
+=		왼쪽 변수에 오른쪽 변수를 더하면서 대입한다.
-=		왼쪽 변수에 오른쪽 변수를 빼면서 대입한다.
*=		왼쪽 변수에 오른쪽 변수를 곱하면서 대입한다.
/=		왼쪽 변수에 오른쪽 변수를 나누어 몫의 값을 대입한다.
%=		왼쪽 변수에 오른쪽 변수를 나누어 나머지의 값을 대입한다.

8) 비트 연산자

연산자		설명
--------------------------------------------------------------------------
&		비트 단위의 AND
|		비트 단위의 OR
^		XOR(배타적 OR) (비트가 같으면 0, 다르면 1을 반환)
~		비트를 반전함

9) 조건 연산자

연산자		설명
--------------------------------------------------------------------------
? :		제어 문의 단일 비교문과 같음 조건식 ? 참값 : 거짓값

 

'Java' 카테고리의 다른 글

05.Java(기초), 반복문  (0) 2022.11.07
04.Java(기초), 조건문  (0) 2022.11.07
02. Java(기초), 변수, 자료형  (0) 2022.11.07
01. VS Code에서 Java 개발 환경 설정하기  (0) 2022.11.07
00. Java  (0) 2022.11.07

1) 변수와 상수

 변수: 어떠한 데이터를 저장하기 위한 메모리 공간의 이름. 지속적으로 변수의 값을 변경할 수 있다.

 상수: 중간에 값이 변할 수 없고, 초기값을 사용한다.

 

2) 기본 자료형(Primitive Type)

 자바의 변수는 반드시 자료형이 선언되어야 하고, OS따라서 자료형의 길이가 변하지 않습니다. 또한, 비객체 타입이므로, null 값을 가질수가 없습니다.

TYPE		Bits		Range of Values
--------------------------------------------------------------------------------------
byte		8비트		정수형(-2^7 ~ 2^7-1)
short		16비트		정수형(-2^15 ~ 2^15-1)
int		32비트 		정수형(-2^31 ~ 2^31-1)
long		64비트		정수형(-2^63 ~ 2^63-1)
float		32비트		부동형 실수(0x0.00002P-126f ~ 0x1.fffffeP+127f)
double		63비트		부동형 실수(0x0.0000000000001P-1022 ~ 0x1.fffffffffffffP+1023)
char		16비트		문자
boolean		1비트		true, false

 3) 참조 자료형(Reference Type)

 참조형은 기본적으로 java.lang.Object를 상속 받으면 상속형이 된다. 선언한 자료형이 기본형이 아닌 경우 참조형이 된다. 참조형은 클래스형(Class type), 인터페이스형(Interface Type), 배열형(Array Type)이 있다.

 

 - 클래스형(Class Type)

Class MyClass{
	private int index;
    MyClass(int index) {
    	this.index = index;
    }
    
    public int getIndex() {
    	return index;
    }
    
    public void setIndex(int index){
    	this.index = index;
    }
}

public class ClassType{
	public MyClass a = new MyClass(2);
    public MyClass b = new MyClass(4);
    System.out.println(a.getIndex());  // "a" result is 2.
    a=b;
    System.out.println(a.getIndex());  // "a" result is 4.
    b.setIndex(6);
    System.out.println(a.getIndex());  // "a" result is 6.
}

 b 객체의 멤버 변수 값을 바꿨지만, a 객체는 b 객체를 참조하기 떄문에 동일한 값을 출력한다. 위 코드에서는 a와 b라는 변수를 가지는 것이 아닌, 객체의 주소를 참조하기 때문에 b의 값을 가지게 된다.

 

 - String Class

 클래스형에서도 String 클래스는 조금 특별하다. 이 클래스는 참조형에 속하지만, 사용은 기본형처럼 사용한다. 그리고 불변하는 객체이다. 만약, String클래스에 속한 데이터를 바꾼다고해도, 새로운 String 클래스 객체를 만들어 내는것이다. 일반적으로 기본형의 비교는 =(equal) 연산자를 사용하지만 String 객체간의 비교는 .equals() 메소드를 사용한다.

 

 -Wrapper Class

 기본형은 비객체이기 때문에 null을 할당할 수 없지만, 기본형을 클래스로 감싼 형태인 Wrapper Class를 활용하면 null을 할당 할수있다. 다음의 클래스는 각각의 기본 자료형에 대응한다

기본형		대응 래퍼 클래스
byte 		Byte
short		Short
int		Integer
long		Long
float		Float
double		Double
char		Char
boolean		Boolean

 

 - 인터페이스형(Interface Type)

 일반적으로 인터페이스는 추상 클래스와 많이 비교된다. 인터페이스는 새로운 참조 자료형을 만드는 것과 같다. 인터페이스는 아래와 같은 형식으로 만든다

interface MyInterface<T> {
	void add(T value);
}

 <T>는 제너릭 타입이며, 옵션이다.

 

 - 배열형(Array Type)

 배열형은 기본형으로도 만들 수 있고 참조형으로도 만들 수 있다.

public class MyArray{
	public static void main(String[] args) {
    	int[] i = new int[2];
        Long[] l  new Long[2];
        Object[][] o = null;
    }
}

 자료형에 대해 []를 선언함으로 배열을 지정할 수 있다. 배열형 변수 또한 주소가 할당되는 것이기 때문에 클래스형과 특징이 일치한다.

 

 - 열거형(Enum Type)

  String 클래스와 마찬가지로 불변의 객체이며, 상수의 집합을 만들거나 특정 객체의 상태를 모아서 사용한다. 

 

'Java' 카테고리의 다른 글

05.Java(기초), 반복문  (0) 2022.11.07
04.Java(기초), 조건문  (0) 2022.11.07
03.Java(기초), 연산자(Operator)  (0) 2022.11.07
01. VS Code에서 Java 개발 환경 설정하기  (0) 2022.11.07
00. Java  (0) 2022.11.07

 가장 먼저 VS Code에서 Java 환경을 만들어 주기 위해서는 VS Code 설치가 필요하다. 아래의 링크에서 VS Code를 설치하자

 VS Code : https://code.visualstudio.com/

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

 VS Code 설치가 끝이났으면 JDK(Java Development Kit)를 설치하자.

 JDK 17 : https://www.oracle.com/kr/java/technologies/downloads/#java17

 

Download the Latest Java LTS Free

Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.

www.oracle.com

 두 개발 도구를 설치했으면 이제 Java에서는 환경 변수라는걸 설정해주어야 된다. 자바에서 중요한 환경 변수는 3가지가 있는데 다음과 같다

 - JAVA_HOME 환경변수 설정

 - JDK_HOME 환경변수 설정

 - PATH 환경변수에 Java.exe 위치 지정

 

 (환경변수를 왜 지정해야하는가에 대한 설명: https://www.lifencoding.com/software/26?p=1)

 (환경변수를 지정하는 방법: https://aitconomy.tistory.com/210)

 

이제 VS Code를 실행하고 자바 확장팩을 설치한다

이제 Ctrl + Shift + P를 누르고 Java:Create Java Project...를 선택하고 No build tools를 선택하고 프로젝트를 만들어준다. 이제부터 자바의 개발을 시작할수 있다.

'Java' 카테고리의 다른 글

05.Java(기초), 반복문  (0) 2022.11.07
04.Java(기초), 조건문  (0) 2022.11.07
03.Java(기초), 연산자(Operator)  (0) 2022.11.07
02. Java(기초), 변수, 자료형  (0) 2022.11.07
00. Java  (0) 2022.11.07

- Java? 

 제임스 고슬링이 개발한 객체 지향 언어(Object-Oriented Languege)이며, Write Once, Run Anywhere를 모토로 개발된 언어이다. 즉, JRE가 설치된 모든 환경에서 실행이 가능하다는 것이다.

 1995년에 탄생한 이후로 쌓여온 노하우로 안정성이 높아, 꾸준한 기업용 소프트웨어에서 기본 언어 및 환경으로 채택하고 있다. 또한, 오랜기간 개발된 오픈소스 라이브러리가 많다. 

 

 - 사용하는 곳

 백엔드 서버 개발, 데이터 엔지니어링, 하드웨어 실행환경에 구애받고 싶지 않은 모든 곳

 

 - Java의 한계

 정해진 Java의 문법때문에, 더 유연하고 견고한 코드를 만들기 어렵다. 단점을 극복하기 위해 대표적인 언어로 Kotlin, GoLang 등이 있다.

 

 - Java의 장점

 레퍼런스가 많아 배우기 쉬운 객체 지향언어이다. 언어가 다르더라도 실행환경은 Java의 구동환경인 JVM에서 동작하는 언어들이 많다. JVM에 대한 지식은 언어가 바뀌더라도 유효하다. 또한, 안정성이 중요한 소프트웨어, 대용량 데이터를 다루기 위한 도구들은 대부분 JVM, java 기반으로 만들어져있다.

'Java' 카테고리의 다른 글

05.Java(기초), 반복문  (0) 2022.11.07
04.Java(기초), 조건문  (0) 2022.11.07
03.Java(기초), 연산자(Operator)  (0) 2022.11.07
02. Java(기초), 변수, 자료형  (0) 2022.11.07
01. VS Code에서 Java 개발 환경 설정하기  (0) 2022.11.07

+ Recent posts