전체 글 43

추상클래스

추상클래스!!! 이해라도 해보자!!! 추상클래스이름 그대로 추상적인 개념을 제공하는 클래스 이기 때문에 실체인 인스턴스가 존재하지 않는다.상속을 목적으로 사용하고 부모클래스 역할을 담당한다. 사용방법ex)abstract class AbstractAnimal {...}클래스를 선언할 때 앞에 abstract 키워드를 붙여준다.추상 클래스는 기존 클래스와 같다. 다만 new AbstractAnimal() 와 같이 직접 인스턴스를 생성하지 못하는 제약이 추간된 것이다. 추상 메서드이름 그대로 추상적인 개념을 제공하는 메서드 이기 때문에 실체가 존재하지 않고, 메서드 바디가 없다.상속 받는 자식 클래스가 반드시 오버라이딩 해야 하는 부모 클래스에 정의할 수 있다. 사용방법public abstract void s..

TIL 2024.04.27

상속 정복하기

상속!! 이해라도 해보자 개인과제로 계산기를 만들다 상속 관계를 만드는 곳에서 완전 막혀버렸다. 활용 할 수 없다는 것은 아직 손에 익숙하지 않기 때문일 수도 있지만, 내가 생각하기에는 이해가 부족하다!! 주말시간을 활용해 한번 이해해 보자. 상속이 필요한 이유 전기차와 가솔린차는 자동차(Car) 의 구체적인 개념이다. 반대로 자동차(Car)는 전기차와 가솔린차를 포함하는 추상적인 개념이다 . 그래서인지 잘 보면 둘의 공통 기능이 보인다. 바로 이동( `move()` )이다. 전기차든 가솔린차든 주유하는 방식이 다른 것이지 이동하는 것은 똑같다. 이런 경우 상속 관계를 사용하는 것이 효과적 이다. 상속관계상속은 객체 지향 프로그래밍의 핵심 요소 중 하나이다. 기존 클래스의 필드와 매서드를 새로운 클래스에..

TIL 2024.04.27

계산기 만들기

계산기를 프로그래밍 해보자 우선 과정을 거치때 마다 commit을 해주기 위해 인텔리제이와 깃허브를 연동해보자.  세팅에서 깃허브를 찾아준뒤 연동한다. 연동은 성공했지만 작은 문제가 생겼다.문제점깃허브의 default 는메인에 연결되어 있는데 나의 깃은 master 브런치에 연결되어 있어 커밋&푸쉬를 할때마다 브런치가 계속 생성되고 있다는 점, git checkout main 을 해도 main에 접근하지 못한 다는 점 해결법우선 해결을 하기 위해선 원인을 알아야 하기에 튜터님에게 질문을 해 보았다. 튜터님께서 왜 문제가 생긴지 이유를 설명해 주셨다.  이유: 지금 main으로 접근하지 못하는 이유가 깃허브에서는 main이라는 이름의 브렌치에 git init이 되어있고, 나는 master란 이름의 브런치에..

TIL 2024.04.26

별찍기 (하드버전)

그간 수많은 별찍기 경험으로 생각해낸 모양다이아몬드 가능하지 않을까? 라고 생각하던중 다른분이 백준에서 다이아몬드 문제를 발견하셨다.그래서 바로 도전하러 갔다.사실 별찍기를 하는게 크게 도움이 될까? 생각했는데 이번에 프로젝트 하면서 유동적인 변수를 함수로 만들 때이중 포문을 이해하고 있었더니 내가 원하는걸 바로 머릿속에 그릴 수 있다는 장점이 있었다.그래서 별찍기도 한번씩 감을 잃어 갈때 쯤 꼭 해봐야겠단 생각이 들었다.package practice.backjun.loop;import java.util.Scanner;public class Star4 { public static void main(String[] args) { Scanner scanner = new Scanner(Sys..

TIL(4)

오늘 한일백준 풀기 - Buffer 에 대한 심오한 이해강의 듣기 -  2주차 과제, 3주차(객체에 대한 수업)  백준을 풀다보니 버퍼에 대한 문제가 나왔다.특징은 스캐너가 쓰레기를 하나씩 버리는 느낌이라면 버퍼는 한번에 모아서 버리는 느낌이라는 점?장점은 크만큼 처리속도가 빠르다! 근데 아직 익숙하지 않아서 쓰기가 어렵다.package practice.backjun.loop;import java.io.*;import java.util.StringTokenizer;public class Buffer1 { public static void main(String[] args) throws IOException { BufferedReader br = new ..

TIL 2024.04.24

Til(3)

오늘은 대부분 강의를 듣는데에 시간을 할애했다. 내가 제일 약한 부분이 배열이란 것을 N queen을 풀다가 느껴서 배열부분을 확실하게 하기 위해 인텔리제이에 정리를 하면서 들었다. 2차원 배열 !! package sparta_java_2.array; public class Array6 { public static void main(String[] args) { // 가변 배열 int[][] array = new int[3][]; // 배열 원소마다 각기 다른 크기로 지정 array[0] = new int[2]; array[1] = new int[4]; array[2] = new int[1]; //중괄호로 초기화를 아예 해버릴 때도 가능함!! int[][] array2 = { {10 ,20}, {10,2..

TIL 2024.04.23

내일배움캠프 4일차 TIL + 프로젝트를 하며 배운점!!

https://winner7789.tistory.com/16 두번째 미니 프로젝트팀원 소개 프로젝트 시작부터 완성 및 발표까지(2) 너무너무 중요한 부분!!!!!! 누가 나한테 짧은 개발 공부중 어떤코드가 기억에 남냐고 묻는다면 바로 이 코드라고 할거 같다. // 모듈안에서 전역변수 선언 (모듈밖에서는(전역변수 선언시 윈도우 winner7789.tistory.com 프로젝트 카테고리와 겹처 프로젝트에 정리해 놓았습니다.

TIL 2024.04.19

두번째 미니 프로젝트팀원 소개 프로젝트 시작부터 완성 및 발표까지(2)

너무너무 중요한 부분!!!!!! 누가 나한테 짧은 개발 공부중 어떤코드가 기억에 남냐고 묻는다면 바로 이 코드라고 할거 같다. // 모듈안에서 전역변수 선언 (모듈밖에서는(전역변수 선언시 윈도우가 생략되어있음) ) // 시간 지연때문에 안됨, js파일을 먼저 불러옴 let docs = await getDocs(collection(db, "team-member")); docs.forEach((doc) => { let row = doc.data(); let image = row['image']; let name = row['name']; let job = row['job']; let memberAge = row['memberAge']; let memberMbti = row['memberMbti']; let ..