분류 전체보기 38

JAVA - Static

static 키워드는 클래스 단위로 관리 되는 요소인다. 인스턴스에 귀속되지 않고 클래스 자체에 귀속된다. static 변수는 프로그램이 시작할때 메모리에 할당되고 프로그램이 종료될 때까지 유지된다. 클래스가 로드될때 메모리의 메소드 영역에 할당되기 때문이다.하지만 남용해서 사용하게 된다면 객체지향 프로그래밍의 원칙과 상반되고(객체 보다는 기능 중심으로 설계가된다는 의미), 메모리 사용량 증가로 이어질 수 있다. 그래서사용할때 신중하게 결정해야한다. static 변수는 클래스 레벨에서 선언되고, 모든 인스턴스에 의해 공유된다. 인스턴스화 없이 클래스 이름을 통해 직접 호출할수있다. public class MathUtils { public static int add(int a, int b) { ..

카테고리 없음 2025.04.25

자바 this( )

this는 객체 자신을 가리키는 래퍼런스 변수로 알고 생성자만들때 사용을 했었는데 여러 생성자를 만들다 보면 중복되는 부분이 있다는것을 알게되었다. MemberConstruct(String name, int age, int grade) { System.out.println("생성자 호출 name : " + name + ", age : " + age + ", grade : " + grade); this.name = name; this.age = age; this.grade = grade;}MemberConstruct(String name, int age) { System.out.println("생성자 호출 name : " + name + ", age : " + age + ", g..

카테고리 없음 2025.04.22

개인과제 계산기 Lv2

Lv1 을 다하고 Lv2단계 제작 시작 먼저 계산기 클래스와 메인 클래스를 구분을 시작했다. 메인 클래스에서는 출력하는 문구만 최대한 남기기 위해서 사칙연산을 하는 기능들은 전부 계산기 클래스로 넘겨주었다. 작성하면서 여러 오류가 있었는데 가장 기억에 남는 오류는 리스트에 있는 숫자를 삭제를 하고 삭제가 된거를 확인을 했는데 바로 삭제 가기 버튼을 입력해서 2차 확인을 했더니 숫자가 남아있는 오류가 있었다. 이게 왜 남아있지 계속 고민하다가 튜터님에게 가서 물어보고 해결을 했는데... 알고보니까 계산기 클래스 부분에서 삭제기능만 있어야하는 메소드에 불필요하게 리스트에 저장된 값을 불러오는 출력문을 같이 쓰고 있었다. 그래서 그로 인해서 오류가 발생하게 된것이었다. 이번 단계에서는 클래스에다가 기능부..

끄적모음 2025.04.17

개인과제 계산기 1

인텔리제이랑 깃헙이랑 연결 블로그 참고 하니까 쉽게 연결됬다 연결하는 방법 먼저 인텔리제이 설정 -> Version Control -> git 설치 확인(안되있다면 설치) -> 밑에 github 이동해서 계정추가 및 로그인 -> 메뉴바에서 Git 설정 -> manage Remotes 클릭 -> + 버튼 선택하면 url 나옴 -> github 링크 넣으면 완료 1단계로 클래스를 이용하지 않고 계산기 만들어 보았다. 내가 구현한 계산기는 반복문 안에서 숫자 두개와 산술연산자 4개중 하나를 입력해서 출력하게 하는 기능으로 만들었다. 처음에 바로 코드를 작성 하기 보다는 어떻게 돌아가게 할것인지 그림으로 어떻게 돌아가게 할지 대충 그려보았다. 이렇게 구상해서 해보니까 코드를 빠르게 만들수 있었던거 같다. 더보..

끄적모음 2025.04.16

객체지향 PART 4 - 다형성

다형성(Polymorphism)이란?다형성은 하나의 타입으로 여러 객체를 다룰 수 있는 객체지향의 4번째 특징입니다.인터페이스 상속, 클래스 상속을 활용해서 추상계층을 표현해 왔습니다.이제 추상 계층이라는 특징을 활용해서 다형성을 구현할 수 있습니다. 인터페이스를 활용한 다형성public interface LifeForm { void exist();}public interface Animal extends LifeForm { void makeSound();}public class Cat implements Animal { @Override public void makeSound() { System.out.println("야옹"); } @Override ..

끄적모음 2025.04.15

객체지향 PART 3 - 추상화

추상화란 무엇일까?고양이 → 동물 → 생명체추상화란 불필요한 정보를 제거하고 본질적인 특징만 남기는 것을 의미합니다.객체지향 프로그래밍에서는 추상화의 계층적 특징을 활용해서 유지보수성이 좋은 프로그램을 만들 수 있습니다.이런 추상화 특징을 활용할 수 있다는 것이 객체지향의 3번째 특징입니다.우리는 계층구조를 자바의 특징(인터페이스 상속, 클래스 상속) 구현할 수 있습니다.추상화의 특징은 다형성에서 활용됩니다. 인터페이스 상속을 활용한 추상 계층 표현public interface LifeForm { void exist(); // ✅ 공통: 모든 생명체는 존재한다.}public interface Animal extends LifeForm { void makeSound(); //✅ 공통: 모든 동물..

끄적모음 2025.04.15

객체지향 PART 2 - 상속

상속(Inheritance) 이란? 클래스간의 관계를 부모(상위), 자식(하위) 로 바라보는 개념입니다.이 구조를 통해 상속에서는 재사용성, 확장 이 가능합니다.(중요한 키워드 입니다.)→ 물려받은 속성과 기능은 자식 클래스에서 재사용할 수도 있고, 확장할수도 있습니다.extends 키워드를 사용해서 상속관계를 구현합니다.부모의 속성과 기능을 자식이 자연스럽게 물려받는다라고 생각하면 이해하기 쉽습니다.상속을 통해 코드 중복을 줄이고 유지보수성을 높일 수 있습니다.추상화, 다형성을 구현하는데 잘 활용됩니다. 다음 수업에서 더 자세히 다룰 예정입니다. 재사용성상속의 첫 번째 장점 - 재사용성을 살펴봅시다.상속의 장점은 부모 클래스의 내용을 물려받아 그대로 재사용 할 수 있습니다.public class Par..

끄적모음 2025.04.15

객체지향 PART 1 - 캡슐화(접근제어자)

객체지향의 4가지 특징 PART 1캡슐화 - 데이터의 보호상속 - 재사용성과 확장추상화 - 데이터의 계층적 표현다형성 - 객체지향의 꽃캡슐화란?객체의 정보를 외부에서 직접 접근하지 못하게 보호하는 개념입니다.캡슐처럼 감싸서 내부를 보호하고 외부로부터 내용물을 숨기고 있는 모습에서 유래됐습니다.클래스 혹은 객체의 캡슐화는 접근제어자 를 통해서 구현할 수 있습니다. 캡슐화가 왜 필요할까?예를 들어, 누군가가 여러분의 이름이나 나이를 마음대로 변경할 수 있다면 어떨까요?가문의 비밀처럼 외부에 노출하고 싶지 않은 정보가 있을 수도 있습니다.캡슐화를 통해 이러한 정보를 보호하고 필요한 경우에만 안전하게 접근할 수 있도록 합니다.캡슐화를 구현하기 위해서는 접근제어자 를 이해해야합니다. 접근제어자 (Access Mo..

끄적모음 2025.04.15