반응형

공부 110

자바 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

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

자바 다형성 1편 (Polymorphism)

객체지향 프로그래밍의 대표적인 특징으로는 캡슐화, 상속, 다형성이 있다.캡슐화와 상속은 이전 내용을 참고하자.https://surrealcode.tistory.com/48 자바 접근 제어자자바는 public, private 같은 접근 제어자(access modifier)를 제공한다. 접근 제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있다. 스피커의 음량surrealcode.tistory.comhttps://surrealcode.tistory.com/51 자바 상속이란다음과 같은 전기, 가스 자동차 클래스와 메인 클래스가 있다고 가정하자public class ElectricCar { public void move(){ System.out.println("..

공부/Java 2024.09.04

자바 상속이란

다음과 같은 전기, 가스 자동차 클래스와 메인 클래스가 있다고 가정하자public class ElectricCar { public void move(){ System.out.println("차를 이동합니다."); } public void charge(){ System.out.println("충전합니다."); }}public class GasCar { public void move(){ System.out.println("차를 이동합니다."); } public void fillUp(){ System.out.println("기름을 주유합니다."); }}public static void main(String[] arg..

공부/Java 2024.09.03

자바 final

final 키워드는 이름 그대로 끝 이라는 뜻이다.변수에 final 키워드가 붙으면 더는 값을 변경할 수 없다. final은 class, method를 포함한 여러 곳에 붙을 수 있다. 지금은 변수에 붙는 final 키워드이다.public static void main(String[] args) { final int data1; data1 = 10; //최초 한번만 할당 가능 data1 = 20; final int data2 = 20;} final로 data1을 지정해 준 후 최초 한번 10으로 할당한 뒤 20으로 변경을 하면java: variable data1 might already have been assigned위와 같은 에러가 발생한다.final이기에 최초 할당 이후로는 더이상 ..

공부/Java 2024.09.02

자바 메모리 구조와 static

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

공부/Java 2024.09.02

자바 접근 제어자

자바는 public, private 같은 접근 제어자(access modifier)를 제공한다. 접근 제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있다. 스피커의 음량은 절대로 100을 넘으면 안되는 요구사항이 있는 스피커를 만들어보자.package access;public class Speaker { int volume; Speaker(int volume){ this.volume = volume; } void volumeUp(){ if (volume>=100){ System.out.println("음량을 증가할 수 없습니다 .최대입니다."); } else{ ..

공부/Java 2024.08.31

자바 패키지

소규모의 프로그램은 상관없지만 기능이 정말 많아 프로그램이 커지게 된다면 많은 클래스가 등장하며 기능들 분류가 어려워질 것이다. 이러한 문제를 해결하기위해 패키지라는 개념을 제공한다.패키지를 동해 기능별로 클래스를 묶거나 관련 있는 것들을 묶을 수 있다.  package pack;public class Data { public Data(){ System.out.println("패키지 pack Data 생성"); }} pack 패키지에 Data라는 클래스를 만들고 생성자도 만들었다. 이번엔 pack의 하위 패키지 a를 만들어보자.package pack.a;public class User { public User(){ System.out.println("패키지 pac..

공부/Java 2024.08.31
반응형