웹(WEB)/자바(Java) 19

[Java] 자바 객체지향 프로그래밍

개요자바는 기본적으로 객체지향 프로그래밍 언어이다.객체란 주체가 아닌, 주체가 활용하는 것을 의미한다.우리 주변에 있는 모든 것으로 사물, 개념, 논리 등 프로그래밍의 대상이 된다. 객체지향 프로그래밍은 주변의 많은 것들을 객체화 하여 프로그래밍 하는것을 말한다.예를 들어 게임을 할 때 자신의 캐릭터는 하나의 객체가 되어 상태를 갖고 동작을 한다.  장점블록 형태의 모듈화된 프로그래밍을 통해 신뢰성 높은 프로그래밍이 가능하다.추가, 수정, 삭제에 용이하여 객체에 대한 관리를 쉽게할 수 있다.재사용성이 높아 작업의 반복을 줄여 수고로움을 줄여준다.또한 실제 세계와 유사한 모델링이 가능하다.  현실과 프로그램의 객체현실의 객체가 갖는 속성과 기능은 추상화되어 클래스에 정의된다.클래스는 구체화 되어 프로그램의..

[Java] 자바 생성자, this

생성자객체를 생성할 때 호출하는 메서드이다.new 키워드와 함께 호출되는 함수를 의미한다.일반 멤버 변수의 초기화나 객체 생성 시 실행돼야 하는 작업의 정리이다. ✅ 생성자의 특징클래스 이름과 동일해야 한다.반환 타입이 없으며, void조차 사용하지 않는다.오버로딩이 가능하여 매개변수의 개수나 타입에 따라 여러 개의 생성자를 정의할 수 있다.생성자를 정의하지 않으면 컴파일러가 기본 생성자(매개변수가 없는 생성자)를 자동으로 추가한다.생성자는 호출 시 new 키워드와 함께 사용한다.🔄 생성자 오버로딩 (Constructor Overloading)class Car { String model; int year; // 기본 생성자 public Car() { this.model..

[Java] 자바 메서드

개요현실의 객체가 하는 동작을 프로그래밍화 한 것을 메서드라고 한다.어떤 작업을 수행하는 명령문의 집합으로 볼 수 있다. 반복적으로 사용되는 코드의 중복 방지를 위해 메서드를 사용한다.이를 통해 프로그램의 재사용성을 높여 코드의 양을 줄일 수 있고 유지 보수가 용이하다. 주로 말하는 함수가 메서드라고 볼 수 있다.즉, 어떤 값을 입력 받아서 작업을 진행하고 결과를 돌려주는 역할을 한다.입력을 받는 것과 결과를 돌려주는 것은 생략할 수 있다.[접근제어자] [static] 반환타입 메서드이름(매개변수) { // 메서드 본문 (로직) return 반환값; // 반환타입이 void면 return 생략 가능} 메서드는 위와 같은 형태로 정의한다.  선언부메서드를 호출한 곳으로 반환되는 값의 타입을 정..

[Java] 자바 변수의 선언 위치에 따른 분류

개요자바는 기존에 다루었던 내용 처럼 우선 타입에 따른 분류를 할 수 있다.[Java] 자바 변수 타입, 타입 변환 [Java] 자바 변수 타입, 타입 변환개요변수란 자료를 저장하기 위한 메모리 공간으로 탑입에 따라 크기가 달라진다.메모리 공간에 값을 할당한 후 사용한다. 변수 타입, 형이란 데이터의 형태로 나타내며 데이터 타입에 따라 크zzzz955.tistory.com 그 외에 배열, 문자열, 객체 등 가변적으로 크기가 변할 수 있는 변수가 존재한다.또한 선언 위치에 따라 분류를 할 수 있다.  멤버 변수 (필드, 인스턴스 변수)클래스 블록 안에서 메소드 밖에 선언된 변수로 객체(인스턴스) 생성 후 사용할 수 있다.생성된 각 객체마다 독립적인 값을 가진다. 초기화하지 않으면 기본값으로 초기화가 되며,..

[Java] 자바 JVM 메모리 구조

개요JVM(Java Virtual Machine)은 자바 프로그램이 실행될 때 메모리를 관리하고 운영하는 가상의 머신이다.JVM의 메모리 구조는 크게 5가지 영역으로 나뉜다.메소드(Method) 영역힙(Heap) 영역스택(Stack) 영역PC 레지스터(PC Register)네이티브 메소드 스택(Native Method Stack)🎯 JVM 메모리 구조 흐름클래스 로딩 – 메소드 영역에 클래스 정보 로드객체 생성 – 힙 영역에 객체 생성 (new 연산자)메소드 실행 – 스택에 메소드 호출 정보 저장PC 레지스터 – 현재 실행 중인 명령어 추적네이티브 메소드 호출 – 네이티브 메소드 스택에서 처리이 중 메소드, 힙, 스택 영역에 대해서 알아보자  메소드(Method) 영역정적(Static) 메모리 영역으로..

[Java] 자바 배열

개요배열이란 동일한 타입의 데이터 0개 이상을 하나의 연속된 메모리 공간에서 관리하는 것이다. 만약 동일한 타입인 여러개의 변수를 각각 생성하여 관리한다고 생각해 보자그럼 변수의 개수가 증가 함으로서 자연스레 코드의 길이가 증가될 것이다.또한 반복문을 적용하기가 불가능하며, 변수의 수가 동적으로 결정될 경우 사용할 수 없다. 따라서 배열을 통해 더욱 쉽고 편하게 변수를 관리할 수 있다.다른 언어와 마찬가지로 배열은 한 번 생성되면 크기가 고정되며, 인덱스를 사용해 요소에 접근한다.  배열 선언public class Main { public static void main(String[] args) { int[] numbers; // 권장 방식 int numbers2[]; /..

[Java] 자바 반복문 for, while, do while

개요자바에서 사용하는 반복문에 대해서 알아보자!  for문자바에서의 for문 또한 C/C++/C#/JS와 유사하다.인덱스를 활용한 for문을 통한 순회와, foreach처럼 동작하는 for문이 있다. public class Main { public static void main(String[] args) { int[] nums = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; for (int i = 0; i = 0; --i) System.out.print(nums[i] + " "); System.out.println(); for (int i : nums) System.out.print(i + " "); }}  while문자바에서의 ..

[Java] 자바 조건문 if, switch

개요자바에서 사용하는 조건문 if, switch에 대해서 알아보자  if문if문의 작성법은 C/C++/C#/JS 등과 동일하다.public class Main { public static void main(String[] args) { int a = 1; if (a % 2 == 0) System.out.println("even"); else System.out.println("odd"); }}  switch문여러가지 값 비교시 사용된다. 이 역시 타 언어와 동일하다.case를 따지기 위한 값은 반드시 정수형이거나 String 형태여야 한다. * String타입의 케이스 체크는 jdk 7이상 버전부터 가능하다. * 정수형 중 long타입은 switch문에서 ..

[Java] 자바 변수 타입, 타입 변환

개요변수란 자료를 저장하기 위한 메모리 공간으로 탑입에 따라 크기가 달라진다.메모리 공간에 값을 할당한 후 사용한다. 변수 타입, 형이란 데이터의 형태로 나타내며 데이터 타입에 따라 크게 2가지로 분류한다.기본형 : 미리 정해진 크기의 데이터 표현, 변수 자체에 값 저장참조형 : 크기가 미리 정해질 수 없는 데이터의 표현, 실제 값을 참조할 수 있는 주소만 저장 변수 타입변수 타입은 여느 언어와 비슷하다.특별히 다른 점은 논리형 타입의 변수는 C++에서는 bool, 자바에서는 boolean으로 표기한다.또 8비트 정수형 변수는 C++에서는 long long, 자바에서는 long으로 표기한다.타입크기설명byte1 byte (8비트)-128 ~ 127의 범위를 가지는 정수short2 byte (16비트)-3..

728x90