Java (63) 썸네일형 리스트형 [Java] Wrapper class 기본형의 한계 자바는 객체 지향 언어입니다. 그런데 자바 안에 객체가 아닌 것이 있습니다. 바로 int, double 같은 기본형(Primitive Type) 입니다. 기본형은 객체가 아니기 때문에 한계가 있습니다. 객체가 아님: 기본형 데이터는 객체가 아니기 때문에, 객체 지향 프로그래밍의 장점을 살릴 수 없습니다. 예를 들어 객체는 유용한 메서드를 제공할 수 있는데, 기본형은 객체가 아니므로 메서드를 제공할 수 없다. 객체 참조가 필요한 컬렉션 프레임워크를 사용할 수 없다. 그리고 제네릭도 사용할 수 없다. null 값을 가질 수 없음: 기본형 데이터 타입은 null 값을 가질 수 없습니다. 때로는 데이터가 없음 이라는 상태를 나타내야 할 필요가 있다. 기본형은 항상 값을 가지기 때문에 이런 표현을 .. [Java] 가변 String 불변인 String 클래스의 단점 불변인 String 클래스에도 단점이 있습니다. 두 문자를 더하는 경우 "A" + "B" String("A") + Sring("B") // 문자는 String 타입이다. String("A").concat(String("B")) // 문자의 더하기는 concat을 사용한다. new String("AB") // String은 불변이다. 따라서 새로운 객체가 생성된다. 불변인 String의 내부 값은 변경할 수 없다. 따라서 변경된 값을 기반으로 새로운 String 객체를 생성한다. 더 많은 문자를 더하는 경우 String str = "A" + "B" + "C" + "D"; String str = ("A") + String("B") + String("C") + String(".. [Java] String 클래스 주요 메서드를 살펴보자! 문자열에 'Java'가 포함되어 있는지: true 'Java'의 첫번째 인덱스: 7 인덱스 10부터 'Java'의 인덱스: 24 'Java'의 마지막 인덱스: 24 주요 메서드 목록 String 클래스는 문자열을 편리하게 다루기 위한 다양한 메서드를 제공한다. 메서드를 외우기 보다는 필요할 때 검색하거나 API 문서를 통해서 원하는 기능을 찾는 것이 좋다. (밑에서 자주 사용하는 기능 위주로 나열했습니다) 문자열 정보 조회 public class StringInfoMain { public static void main(String[] args) { String str = "Hello, Java!"; System.out.println("문자열의 길이: " + str.length()); System.out... [Java] String 클래스가 불변 객체 라고? String 클래스 자바에서 문자를 다루는 대표적인 타입에는 char, String이 있습니다. public class CharArrayMain { public static void main(String[] args) { char[] charArr = new char[]{'h', 'e', 'l', 'l', 'o'}; System.out.println(charArr); String str = "hello"; System.out.println("str = " + str); } } 기본형인 char는 문자 하나를 다룰 때 사용한다. char를 이용해서 여러 문자를 나열하려면 char[ ] 을 사용해야 한다. char[ ]을 다루는 방법은 매우 불편하기 때문에 문자열을 편하게 다룰 수 있는 String 클래스를.. [Java] 불변 객체, 불변 클래스 기본형과 참조형의 공유 자바의 데이터 타입을 가장 크게 보면 기본형(Primitive Type), 참조형(Reference Type) 으로 나눌 수 있습니다. 기본형: 하나의 값을 여러 변수에서 절대로 공유하지 않는다. 참조형: 하나의 객체를 참조값을 통해 여러 변수에 공유할 수 있다. "기본형은 하나의 값을 여러 변수에서 절대로 공유하지 않는다" 이 말은 무슨 뜻 일까요? public class PrimitiveMain { public static void main(String[] args) { // 기본형은 절대로 같은 값을 공유하지 않는다. int a = 10; int b = a; // a => b 값 복사 후 대입 System.out.println("a = " + a); System.out.pri.. [Java] Object 클래스 Java.lang 패키지 자바가 기본으로 제공하는 라이브러리(클래스 모음) 중에 가장 기본이 되는 것이 java.lang 패키지 입니다. 자바 언어를 이루는 가장 기본이 되는 클래스들을 보관하는 패키지를 뜻합니다. java.lang 패키지의 대표적인 클래스들 Object: 모든 자바 객체의 부모 클래스 String: 문자열 Interger, Long, Double: 래퍼 타입, 기본형 데이터 타입을 객체로 만든 것 Class: 클래스 메타 정보 System: 시스템과 관련된 기본 기능들을 제공 import 생략 가능 java.lang 패키지는 모든 자바 애플리케이션에 자동으로 임포트(import) 됩니다. 따라서 임포트 구문을 사용하지 않아도 됩니다. package lang; import java.lan.. [Java] 다형성이 중요한 이유? 객체 지향 프로그래밍란? 객체 지향 프로그래밍은 컴퓨터 프로그램을 명렁의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체" 들의 모임으로 파악하고자 하는 것입니다. 각각의 객체는 메서지를 주고받고, 데이터를 처리할 수 있다. 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 그렇다면 유연하고, 변경이 용이하다는게 뭘까? 레고 블럭 조립하듯이 키보드, 마우스 갈아 끼우듯이 컴퓨터 부품 갈아 끼우듯이 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법 객체 지향 프로그램 특징 추상화 캡슐화 상속 다형성 다형성의 실세계 비유 실세계와 객체 지향을 1:1로 매칭 X 그대로 실세계의 비유로 이해하기에는 좋음 역할과 구현으로 세.. [Java] 인터페이스 추상 클래스 다형성의 활용에서 생길 수 있는 문제점들을 보완하기 위해서 추상 클래스와 추상 메서드를 사용해봅시다. 동물(Animal)과 같이 부모 클래스는 제공하지만, 실제 생성되면 안되는 클래스를 추상 클래스라고 합니다. 추상 클래스는 이름 그대로 추상적인 개념을 제공하는 클래스입니다. abstarct class AbstractAnimal {...} 추상 클래스는 클래스를 선언할 때 앞에 추상이라는 의미의 abstract 키워드를 붙여주면 된다. 추상 클래스는 기존 클래스와 완전히 같다. 다만 new AbstractAnimal( ) 와 같이 직접 인스턴스를 생성하지 못하는 제약이 추가된 것이다. 추상 메서드 부모 클래스를 상속 받는 자식 클래스가 반드시 오버라이딩 해야 하는 메서드를 부모 클래스에 정의.. [Java] 다형성의 활용 개, 고양이, 소의 울음소리를 테스트하는 프로그램을 만들어봅시다. 먼저 다형성을 사용하지 경우 입니다. public class Dog { public void sound() { System.out.println("멍멍"); } } public class Cat { public void sound() { System.out.println("냐옹"); } } public class Caw { public void sound() { System.out.println("음매"); } } public class AnimalSoundMain { public static void main(String[] args) { Dog dog = new Dog(); Cat cat = new Cat(); Caw caw = new.. [Java] 다형적 참조(업캐스팅 vs 다운캐스팅) 객체지향 프로그래밍의 대표적인 특징으로는 캡슐화, 상속, 다형성이 있습니다. 그 중에 다형성은 객체지향 프로그래밍의 꽃이라고 불립니다. 캡슐화나 상속은 직관적으로 이해하기 쉽지만 다형성은 제대로 이해하기도 어렵고, 잘 활용하기는 더 어렵습니다. 하지만 좋은 개발자가 되기 위해서는 다형성에 대한 이해가 필요합니다. 다형성(Polymorphism)은 이름 그대로 "다양한 형태", "여러 형태" 를 뜻합니다. 프로그래밍에서 다형성은 한 객체가 여러 타입의 객체로 취급될 수 있는 능력을 뜻합니다. 보통 하나의 객체는 하나의 타입으로 고정되어 있습니다. 그런데 다형성을 사용하면 하나의 객체가 다른 타입으로 사용될 수 있다는 뜻입니다. 다형성을 이해하기 위해서는 크게 2가지 핵심 이론을 알아야 합니다. 다형적 참조.. 이전 1 2 3 4 5 6 7 다음