본문 바로가기

전체 글

(55)
[백엔드개발자 준비하기] 오브젝트클래스 오브젝트 -최상위 클래스 -생성된 모든 클래스들은 항상 최상위 클래스로 오브젝트 클래스를 가진다 생략되어있던 기본 생성자가 다른 생성자를 만들면 사라지듯 오브젝트 클래스 상속도 생략되어있다가 다른 클래스 상속으로 바꾸면 사라진다 -생략되어있던 것들이 다른것으로 명시하는 순간 대체된다 -어차피 상속받은 부모 클래스도 상위클래스는 오브젝트라 단일상속 가능 인스턴스.getClass() -생성된 객체의 클래스 정보를 가져옴 클래스.class -해당 클래스의 정보를 가져옴 [ToString] public class ToString { public static void main(String[] args) { Student student1 = new Student("조병철", 34); Student student2 ..
[백엔드개발자 준비하기] 인터페이스 인터페이스 내에서는 abstract를 붙이지 않아도 모두 추상이다 -인터페이스 내부에 있는 객체는 구현하는 객체가 아님 -일반메소드 작성 불가능 (default를 붙여줘야 사용가능) -일반 변수(멤버변수)를 가지지 못함 -상수는 가질 수 있음 -인터페이스 내에서 변수를 선언하면 final을 붙이지 않더라도 자동으로 상수로 선언됨 implements 인터페이스를 갖다쓰겠다 자바는 단일상속이라 여러개의 클래스를 상속받을 수 없다 인터페이스는 여러개를 갖다 쓸 수(상속 비슷함)있음 [interface Calculator] public interface Calculator { public int ERROR = -9999999; public double puls(double x, double y); public ..
[백엔드개발자 준비하기] 추상클래스 추상 -공통된 것들을 뽑아내는 것 -추상클래스에 정의되어있는 추상메소드는 상속받은 자식클래스에서 재정의하여 써야함(오버라이드) 클래스 내에 추상 메소드가 하나라도 있으면 추상 클래스로 변경 - 생성을 못함 추상 클래스를 상속받는 클래스를 만들기 위해서는 추상 클래스가 들고있는 추상 메소드를 전부 구현하거나 만든 클래스도 추상 클래스로 변경하여야 함 예시 추상클래스인 Transportation을 Subway 와 Taxi가 상속받아 사용함 [Transportaion] public abstract class Transportation { // 추상 메소드 public abstract void go(); public abstract void stop(); } [Subway] public class Subway ..
[백엔드개발자 준비하기] 상속_클래스형변환 [Transpotation] public class Transportation { public void go() { } public void stop() { } [Taxi] public class Taxi extends Transportation { @Override // @로 시작하는 문법을 어노테이션이라고 한다 public void go() { System.out.println("택시를 타고 출발"); } @Override public void stop() { System.out.println("택시를 타고 도착"); } public void checkTaxiNumber() { System.out.println("택시 번호 확인"); } [Subway] public class Subway extend..
[백엔드개발자 준비하기] 상속 -Extends 를 사용하여 상속받음 -부모클래스가 가지고 있는 메소드와 변수 사용가능 -부모 클래스는 하나여야함(단일상속) 수퍼 나의 상위 객체 (부모클래스 - 항상 최상위에 있어야 함 디스 자기자신 생성자 - 자기자신의 주소를 매개변수로 넣을 때 오버라이딩 메소드명과 매개변수 타입이 같아야 함 이름은 바껴도 됨 오버로딩 이름같고 매개변수 갯수와 타입이 다르면 가능 예시 -Car 클래스를 KiaCar 와 HyundaiCar 가 상속받음 [Car] public class Car { private String company; private String model; private int price; public Car() { System.out.println("부모"); } public int discoun..
[백엔드개발자 준비하기] 배열 활용 foreach -변수 : 배열 or 리스트 -처음부터 끝까지 하나씩 다 꺼냄 -돌아갈 수 없음 -names 변수랑 같은 배열을 하나 더 생성해서 하나씩 꺼내는 구조 -생성자는 생성될 때 한번만 작동하므로 사용되는 변수를 상수로 설정해둔다(final) [이차원배열 예시] int num = 0; int[] nums = new int[2]; int[][] d_nums = new int[3][2]; d_nums[0][0] = 1; d_nums[1][0] = 2; d_nums[2][0] = 3; d_nums[0][1] = 4; d_nums[1][1] = 5; d_nums[2][1] = 6; for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { System.ou..
[백엔드개발자 준비하기] 배열 [배열] -배열은 참조자료형 -변수를 인덱스당 하나씩 할당하고 new로 생성시에 메모리에 동적으로 할당해줌 -각 인덱스 번호의 주소에 들어있는 값을 들고옴 -반복을 쓰기 위해 배열을 사용 예시1 int num1 = 10; int num2 = 20; int num3 = 30; int num4 = 40; int num5 = 50; System.out.println(num1); System.out.println(num2); System.out.println(num3); System.out.println(num4); System.out.println(num5); // 배열은 참조자료형 // new는 생성할 때 무조건 동적할당 // 인덱스 사용 // 각 번호의 인덱스 주소를 참조함 int[] nums = new ..
[백엔드개발자 준비하기] 깃, 깃허브, 소스트리 활용하기 [깃] -형상관리 시스템 -버전관리 분산관리 remote - 깃허브 local - 내 PC head - 현재 상태를 잠시 과거로 돌린 임시브랜치라 존재하지 않기때문에 커밋하면 안됨 이클립스에서는 src 만 있으면 나머지는 생성됨 따라서 src 제외하고 나머지는 깃 이그노어 설정 가능 [프로젝트 만드는 법] 1. 프로젝트 생성 2. Github Repository 생성 3. Repository에 프로젝트 옮김 4. 최초 커밋(init) 5. push