반응형

클래스 13

자바 지역 클래스

https://surrealcode.tistory.com/62 자바 중첩 클래스, 내부 클래스예전 반복문을 배울 때 for문 안에 for문을 중첩하는 것을 배웠던 적이 있다.for(){    for((){        ~~~~~    }}이런 for문을 2중 for문 또는 중첩(Nested) for문이라고 하였었다. 이러한 중첩은 클래스surrealcode.tistory.com내부 중첩 클래스 및 내부 클래스에 대한 설명은 위 링크를 참고하자. 이전에 배웠듯이 중첩 클래스의 종류는 크게 두가지로 분류하고 작게는 네가지가 있었다.1. 정적 중첩 클래스2. 내부 클래스 : 내부 클래스, 지역 클래스, 익명 클래스  그 중 지역 클래스(Local class)는 내부 클래스의 특별한 종류의 하나이다. 따라서 내..

공부/Java 2024.09.14

자바 래퍼 클래스(wrapper class)

기본형의 한계 1자바는 객체 지향 언어이다. 그런데 바자 안에 객체가 아닌 것이 있다. 바로 int, double 같은 기본형(Primitive Type)이다. 기본형은 객체가 아니기 때문에 다음과 같은 한계가 있다.1. 객체가 아님 : 기본형 데이터는 객체가 아니기 때문에, 객체 지향 프로그래밍의 장점을 살릴 수 없다. 예를 들어 객체는 유용한 메서드를 제공할 수 있는데, 기본형은 객체가 아니므로 메서드를 제공할 수 없다.2. null 값을 가질 수 없음 : 기본형 데이터 타입은 null 값을 가질 수 없다. 때로는 데이터가 없음 이라는 상태를 나타내야 할 필요가 있는데, 기본형은 항상 값을 가지기 때문에 이런 표현을 할 수 없다. public static void main(String[] args) ..

공부/Java 2024.09.10

자바 불변 객체

자바에서 제공하는 굉장히 많은 클래스들이 불변 객체로 설계되어 있다. 자바의 데이터 타입을 가장 크게 보면 기본형(Primitive Type)과 참조형(Reference Type)으로 나눌 수 있다. 기본형 : 하나의 값을 여러 변수에서 절대로 공유하지 않는다.참조형 : 하나의 객체를 참조값을 통해 여러 변수에서 공유할 수 있다. 기본형 변수는 하나의 값을 공유하거나 공유하지 않는다는 뜻은 다음 예제와 같다.public static void main(String[] args) { int a = 10; int b = a; // a-> 값 복사 후 대입 System.out.println("a = " + a); System.out.println("b = " + b); b = 20; ..

공부/Java 2024.09.09

자바 다형성 3편 (Polymorphism)

자바 다형성 관련 마지막 글이 될 것 같다.다형성 관련하여선 기존 작성했던 1편과 2편을 참고하는 것이 좋다.https://surrealcode.tistory.com/52 자바 다형성 1편 (Polymorphism)객체지향 프로그래밍의 대표적인 특징으로는 캡슐화, 상속, 다형성이 있다.캡슐화와 상속은 이전 내용을 참고하자.https://surrealcode.tistory.com/48 자바 접근 제어자자바는 public, private 같은 접근 제surrealcode.tistory.comhttps://surrealcode.tistory.com/53 자바 다형성 2편 (Polymorphism)https://surrealcode.tistory.com/52 자바 다형성 1편 (Polymorphism)객체지향 ..

공부/Java 2024.09.05

자바 다형성 2편 (Polymorphism)

https://surrealcode.tistory.com/52 자바 다형성 1편 (Polymorphism)객체지향 프로그래밍의 대표적인 특징으로는 캡슐화, 상속, 다형성이 있다.캡슐화와 상속은 이전 내용을 참고하자.https://surrealcode.tistory.com/48 자바 접근 제어자자바는 public, private 같은 접근 제surrealcode.tistory.com이전에 다형성에 대해서 알아보았다.이번엔 학습한 다형성이 왜 필요하고 사용해야 하는지, 그 장점에 대해 알아보도록 한다.public class Dog { public void sound(){ System.out.println("멍멍"); }}public class Cow { public void so..

공부/Java 2024.09.05

자바 메모리 구조와 static

자바의 메모리 구조는 메서드 영역, 스택 영역, 힙 영역 총 3개로 나눌 수 있다.1. 메서드 영역 : 클래스 정보를 보관한다. 이 클래스 정보가 붕어빵 틀이다.2. 스택 영역 : 실제 프로그램이 실행되는 영역이다. 메서드를 실행할 때마다 하나씩 쌓인다.3. 힙 영역 : 객체(인스턴스)가 생성되는  영역이다. new 명령어를 사용하면 이 영역을 사용한다. 쉽게 이야기해서 붕어빵 틀로부터 생성된 붕어빵이 존재하는 공간이다. 참고로 배열도 이 영역에 생성된다.   메서드 영역(Method Area) : 메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그램의 모든 영역에서 공유한다.1. 클래스 정보 : 클래스의 실행 코드(바이트 코드), 필드, 메서드와 생성자 코드 등 모든 ..

공부/Java 2024.09.02

자바 객체 지향 프로그래밍

프로그래밍은 크게 절차 지향 프로그래밍과 객체 지향 프로그래밍으로 나눌 수 있다 절차 지향 프로그래밍1. 이름 그대로 절차를 지향한다 실행 순서를 중요하게 생각하는 방식이다.2. 절차 지향 프로그래밍은 프로그램의 흐름을 순차적으로 따르며 처리하는 방식이다. 즉, "어떻게"를 중심으로 프로그래밍 한다. 객체 지향 프로그래밍1. 객체를 지향한다, 객체를 중요하게 생각한다.2. 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍하는 방식이다. 즉, "무엇을"중심으로 프로그래밍 한다.  절차 지향은 데이터와 해당 데이터에 대한 처리 방식이 분리되어 있다. 반면 객체 지향에서는 데이터와 그 데이터에 대한 행동(메서드)이 하나의 '객체'안에 함께 포함되어 있다. public..

공부/Java 2024.08.30

자바 클래스와 데이터

클래스와 데이터에 대한 내용이 머릿속에 확실하게 정리되지 않은 것 같아, 인강을 다시 보며 복습하기로 하였다.머리가 나쁘면 몸이 고생한다.  클래스가 필요한 이유 :int[] studentAges = {15,16};String[] studentNames ={"학생1", "학생2"};int[] studentGrades = {90,80};위처럼 데이터를 배열을 통해 관리하면 한 학생의 데이터가 3개의 배열에 나누어져 있기에 3개의 배열을 각각 변경해야 하는 어려움이 있다. 이렇게 하면 실수 가능성이 매우 높다. 이러한 문제를 해결하기 위해 학생이라는 개념을 하나로 묶는 것이다. 그 개념이 바로 클래스이다. 클래스를 사용해서 학생이라는 개념을 만들고, 각각의 학생 별로 이름 나이 점수를 관리 하는 것이다. p..

공부/Java 2024.08.29

자바 참조형과 메서드 호출 활용

위의 initStudent를 생성후에 초기화할 수 있다 생성과 함께 초기화는 어떻게 진행할까? createStudent라는 Student 메서드를 새로 생성하였다.이 Student 메서드는 매개변수로 이름, 나이, 점수를 받고 Student라는 인스턴스를 생성하여 그 인스턴스에 이름, 나이, 점수를 집어넣은 후 return student를 통해 참조값을 반환한다.그 참조값은Student student1 및 Student student2에 대입되고 그 참조값을 가지고 printStudent를 통해 해당 참조값에 대한 이름, 나이, 점수를 알 수 있게 된다. 이해는 되는데 너무 어렵다.   여지껏 지역 변수들은 수동으로 초기화를 진행해주어야 했다. 초기화를 하지 않으면 에러가 터지기도 하였다. 그러나 멤버변..

공부/Java 2024.08.28

자바 기본형과 참조형

변수의 데이터 타입을 가장 크게 보면 기본형과 참조형으로 분류할 수 있다. 사용하는 값을 변수에 직접 넣을 수 있는 기본형, 그리고 이전에 본 Student student1과 같이 객체가 저장된 메모리의 위치를 가르키는 참조값을 넣을 수 있는 참조형으로 분류할 수 있다. 기본형 : int double long boolean처럼 변수에 사용할 값을 직접 넣음참조형 : Student student1, int[] students와 같이 데이터에 접근하기 위한 참조를 저장하는 데이터 타입을 참조형이라 한다. 참조형은 객체 또는 배열에 사용된다. 기본형 변수에는 직접 사용할 수 있는 값이 들어있지만 참조형 변수에는 위치가 들어가 있다.참조형은 실제 사용하는 값을 변수에 담는 것이 아니다. 이름 그대로 실제 객체의..

공부/Java 2024.08.28
반응형