반응형

공부/Java 74

자바 지역 클래스

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

자바 중첩 클래스, 내부 클래스

예전 반복문을 배울 때 for문 안에 for문을 중첩하는 것을 배웠던 적이 있다.for(){    for((){        ~~~~~    }}이런 for문을 2중 for문 또는 중첩(Nested) for문이라고 하였었다. 이러한 중첩은 클래스에서도 적용이 될 수 있는데, 이것을 중첩 클래스(Nested Class)라고 한다. 중첩 클래스는 클래스를 정의하는 위치에 따라 다음과 같이 분류한다.중첩 클래스는 총 4가지이고, 크게 2가지로 분류할 수 있다.중첩 클래스 : 정적 중첩 클래스 + 내부 클래스 종류 포함 1. 정적 중첩 클래스2. 내부 클래스 : 내부 클래스, 지역 클래스, 익명 클래스 중첩 클래스를 정의하는 위치는 변수의 선언 위치와 같다.1. 정적 중첩 클래스 -> 정적 변수와 같은 위치2...

공부/Java 2024.09.13

자바 날짜와 시간

날짜와 시간을 계산하는 것은 단순하게 생각하면 아주 쉬워보이지만, 실제로는 매우 어렵고 복잡하다.왜 그런지 이유를 알아보자 1. 날짜와 시간 차이 계산특정 날짜에서 다른 날짜까지의 정확한 일수를 계산하는 것은 생각보다 복잡하다. 유년ㄴ, 각 달의 일수 등을 모두 고려해야하며, 간단한 뺄셈 연산으로는 결과를 정확하게 얻기 어렵다. 2. 윤년 계산지구가 태양을 한 바퀴 도는 데 걸리는 평균 시간은 대략 365.2425일, 즉 365일 5시간 48분 45초정도 이다. 우리가 사용하는 그레고리력은 1년이 365일로 설정되어 있기 때문에 둘의 시간이 정확히 맞지 않아 윤년(4년마다 하루를 추가하는 달력)이 도입되었다.윤년 계산은 간단해보이지만 실제로는 매우 복잡하다. 윤년은 보통 4년마다 한번씩 발생하지만, 10..

공부/Java 2024.09.12

자바 열거형-ENUM

자바가 제공하는 열거형(Enum Type)을 제대로 이해하려면 먼저 열거형이 생겨난 이유를 알아야 한다. 예제를 순서대로 따라가며 열거형이 만들어진 근본적인 이유를 알아보자 다음은 회원등급에 맞는 할인등급이 적용되는 예제이다.public class ThisCountService { public int discount(String grade, int price){ int discountPercent = 0; if(grade.equals("BASIC")){ discountPercent = 10; }else if(grade.equals("GOLD")){ discountPercent = 20; }else if(grad..

공부/Java 2024.09.11

자바 래퍼 클래스(wrapper class)

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

공부/Java 2024.09.10

자바 String 클래스

자바에서 문자를 다루는 대표적인 타입은 char, String 2가지가 있다.public static void main(String[] args) { char a = 'a'; System.out.println("a = " + a); char[] charArr = new char[]{'h','e','l','l','o'}; System.out.println(charArr); String str = "hello"; System.out.println(str);} char은 문자 하나만 받을 수 있기에 여러개를 받기 위해선 배열을 사용해야한다.String은 문자열을 받을 수 있다. public static void main(String[] args) { String str1 ..

공부/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

자바 Object 클래스

java.lang패키지 : 자바가 기본으로 제공하는 라이브러리 중에 가장 기본이 되는 것이 java.lang패키지이다. 여기서 lang은 Language(언어)의 줄임말이다. 쉽게 이야기해서 자바 언어를 이루는 가장 기본이 되는 클래스들을 보관하는 패키지를 뜻한다. java.lang 패키지의 대표적인 클래스들Object : 모든 자바 객체의 부모 클래스String : 문자열Integer, Long, Double : 래퍼 타입, 기본형 데이터 타입을 객체로 만든 것Class : 클래스 메타 정보System : 시스템과 관련된 기본 기능들을 제공 여기 나열한 클래스들은 자바 언어의 기본을 이루기 때문에 반드시 잘 알아두어야한다.    1.java.lang패키지는 모든 자바 애플리케이션에 자동으로 임포트(im..

공부/Java 2024.09.08

자바 다형성 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

자바 좋은 객체 지향 프로그래밍이란?

객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 레고 블럭 조립하듯이, 키보드 마우스 갈아 끼우듯이, 컴퓨터 부품 갈아 끼우듯이"컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법"이다. 역할과 구현을 구분하면 세상이 단순해지고, 유연해지며 변경도 편리해진다. 장점1. 클라이언트는 대상의 역할만 알면 된다.2. 클라이언트는 구현 대상의 내부 구조를 몰라도 된다.3. 클라이언트는 구현 대상의 내부 구조가 변경되어도 영향을 받..

공부/Java 2024.09.05
반응형