분류 전체보기 439

자바 20강. 접근 지정자

Public : 변수 앞, 클래스 앞, 메서드 앞에 붙을 수 있고, 모든 패키지에서 접근이 가능하다.(전역적) 필요하면 가져다 쓸 수 있어! b패키지에서 a패키지에 있는 메서드를 쓰고 싶을 때는, a에 public이 붙어있어야 한다. import를 사용하면 마치 b패키지 안에 있는 것처럼 사용이 가능하다. import a.A (패키지명.클래스명) a패키지에 있는 모든 클래스를 가져올 때는 아스트리크(*) 모양을 사용한다. import a.* 이때 import 할 때 패키지명은 풀 경로로 적어주어야 한다. import ex11.p1.AccessEx01 클래스에 public은 특별한 경우가 아닌 이상 거의 무조건 붙여야 한다. 참조하여 사용하려는 메서드에도 public이 붙어있어야 한다. 같은 패키지 안에 ..

JAVA 2022.01.18

자바 19강. 라이브러리

다른 기능을 하는 패키지들을 모아놓으면 하나의 프로그램이 된다. 하나의 프로그램 : main( ) 메서드를 가지고 있음 라이브러리 : main( ) 메서드를 가지고 있지 않음 main( ) 메서드 : 실행파일 main( )이 없는 라이브러리는 실행하는 것을 도와주는 조력자 역할 자바에서 기본적으로 제공하는 라이브러리가 있다. 카테고리화 시켜놓은 패키지들 안에 클래스들 -> 라이브러리 자바에서 JDK를 설치하면 기본적으로 제공해주는 라이브러리이다. Math옆에 abs에서 컨트롤 클릭 키로 찾아가 보니 static 변수이다. new 안 해도 메모리에 떠있으니까 클래스명.메서드 참조가 가능하다. Math 라이브러리를 사용해보자 소수점 뒤 숫자를 날리는 Math.abs 사용해볼 건데 Math.abs(-10) 넣..

JAVA 2022.01.17

자바 18강. abstract

신입이 실수하지 않는 코드를 짜는 방법을 알아보자. 스타크래프트 게임을 만든다고 하고, 프로토스가 공격하는 코드를 짤 것이다. 신입에게 새로운 유닛을 만드는 일을 주기 위해 팀장이 코드를 짜줄 것이다. 새로운 유닛을 만들 때 메서드의 이름을 틀릴 수도 있고, 빠트리는 메서드가 있을 수도 있다. 이때는 실수한 신입의 잘못이 아니다. 메서드의 실수가 있어도 오류가 나지 않게 틀을 만들어준 팀장의 잘못이다!! 이를 방지하기 위해 abstract 추상 클래스를 사용할 것이다. 객체의 행위를 공통적으로 정의할 수 없을 때 사용하는 것이다. 클래스명 앞에 abstract를 붙이면 몸체(클래스 중괄호 내부)가 필요 없게 된다. 구체적인 행위는 자식마다 다 다르니까 구체적인 자식에게 구체적인 행위를 맡기는 것이다.(위..

JAVA 2022.01.17

자바 17강. 오버라이딩 ★

부모가 들고 있는 메서드를 자식이 똑같이 들고 있거나, 자식이 들고 있는 메서드를 부모가 똑같이 들고 있는, 똑같은 메서드를 자식도 들고 있고 부모도 들고 있으면 부모의 메서드가 오버라이드 된다. 무효화된다는 말이다. 부모가 가지고 있기 때문에 자식에게 양보하는 것이다. 즉, 메모리를 위에서 밑으로 타고 내려간 것이다. 변수는 자식이 똑같은 변수를 들고 있어도 양보하지 않고, 부모가 가지고 있는 변수를 실행한다. 메서드는 동일한 메서드를 부모와 자식이 가지고 있다는 조건을 지킨다면 부모의 메서드를 오버라이드(무효화)시킨다. 부모의 메서드를 통로로 이용하는 것이다. 통로로 이용하기 때문에 부모 클래스에는 아무런 내용이 필요 없다. 이런 클래스를 abstract 추상 클래스라고 한다. 다형성을 위해 만들어진..

JAVA 2022.01.17

자바 16강. 상속

상속은 물려받기 위해서 사용하는 것이 아닌 추상화하기 위해 사용하는것이다. 상속보다는 extends(확장)의 의미에 더 가깝다. 물려받는다는 말도 맞는 말이지만, 주된 목적은 그게 아닌 추상화인 것이다. 상속의 특징을 알아보자. 특징 1. 이미 존재하는 클래스로부터 멤버들을 물려받는 것이다. 상속을 받을 때는 클래스명 오른쪽에 "extends 상속받을 클래스 명"을 적어준다. package ex11; class 라면 { int kcal = 300; String color = "노란색"; String type = "국물"; } class 매운라면 extends 라면 { // int kcal = 300; // String color = "노란색"; // String type = "국물"; String typ..

JAVA 2022.01.14

Git 2강. github

버전 관리 시스템 VCS(Version Control System) - 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 불러올 수 있는 시스템 중앙 집중식 버전 관리 시스템 CVCS(Centralized Version Control System) - 서버가 별도로 있고 클라이언트가 중앙 서버에서 파일을 받아서 사용하는 방식 협업하기에 버전 관리가 쉽지만 중앙 서버에 문제가 발생한다면 치명적이라는 단점이 있다. 분산 버전관리 시스템 DVCS(Distributed Version Control System) - 단순히 파일의 마지막 스냅샷을 checkout 하지 않고 저장소를 히스토리와 더불어 전부 복제 서버에 문제가 생기면 이 복제물로 다시 작업을 시작할 수 있고 클라이언트 중에서 아무나..

Git 2022.01.14

자바 15강. 오버로딩

오버 로딩 = over-loading = 과적재 사자 unit1, 호랑이 unit2 unit2 = u1 대입 안됨 사자 타입과 호랑이 타입이 맞지 않기 때문 타입 확인 중요! package ex00; // 오버로딩 = over-loading = 과적재 class 사자 { String name = "사자"; int hp = 100; int attack = 10; } class 호랑이 { String name = "호랑이"; int hp = 100; int attack = 15; } class 곰 { String name = "곰"; int hp = 100; int attack = 50; } public class MethEx04 { // 사자 -> 호랑이 공격 static void attackLionToT..

JAVA 2022.01.13

자바 14강. 생성자

[복습] 객체지향 1원칙 (OOP를 잘 짜는 방법) 상태는 행위에 의해 변경된다. 오브젝트 = 실존할 가능성이 있는 것 클래스 = 이상적인 설계도(선언만 함) 인스턴스 = 실재하는 것 메서드(함수) = 함수가 실행되면 스택이 열린다.(메서드마다) class A { int num = 15; 함수명 ( ) { int num = 10; sysout("결과 : " + num); } } 변수는 항상 자기와 가까운 것부터 찾는다. // 결과 : 10 프로그램을 작성할 때 홀로 작동하는 객체는 거의 유용하지 않다. 객체는 메시지(message)를 통해 다른 객체와 통신하고 서로 상호 작용한다. 이때 메시지는 메서드를 호출하는 행위를 말한다. 메시지에는 추가적인 정보들이 필요할 때도 있다. 이런 정보들은 메시지의 매개..

JAVA 2022.01.13

인텔리제이 단축키 모음

Ctrl + Alt + L 자동정렬 Ctrl + 클릭 라이브러리 확인 Alt + Shift + O import 매직키 Alt + Enter 오류 매직키 Ctrl + W W W W .. 부분 선택 W키 누를수록 넓은 범위 선택됨 Shift + F6 클래스명, 변수명 한번에 변경 F2 파일명, 폴더명 이름 변경 Ctrl + Space 자동완성 Alt + ←→ 열려있는 파일 이동 Shift + F9 런 Ctrl + / 주석처리(여러줄 가능) Ctrl + Alt + / 영역 주석처리 Ctrl + D, Alt + Shift + ↟↡ 라인 복사 Ctrl + A 전체 선택

JAVA 2022.01.13