분류 전체보기

    🔥자바스터디🔥 자바의 정석 CH7 객체지향 프로그래밍(상속, 오버라이딩, 제어자, 다형성, 추상클래스, 인터페이스, 내부클래스)

    1. 상속 - 상속 : 기존의 클래스를 재사용하여 새로운 클래스르 작성하는 것 코드를 공통적으로 관리할 수 있기 때문에 유지보수면에서 매우 용이하다. - 구현 : 새로 작성하는 클래스 이름 뒤에 상속 받고자 하는 클래스의 이름을 키워드 extends 와 함께 적어준다. ex) class Child extends Parent{} - 자식클래스는 부모클래스의 모든 멤버를 상속 받는다. (포함한다.) - 생성자와 초기화 블럭은 상속되지 않는다. 멤버(메소드, 필드)만 상속된다. - 자식 클래스의 멤버 개수는 부모 클래스보다 항상 같거나 많다. ** 접근제어자가 private 또는 default인 멤버들은 상속되지 않는다기보다 상속은 받지만 자식 클래스로부터의 접근이 제한되는 것이다. ** 같은 내용의 코드를 ..

    🔥자바스터디🔥 배열과 반복문을 이용한 BINGO 만들기

    빙고 코드 짜기 // 조건 1. 5 * 5 의 정사각형 2차원 배열 2. 모든 요소에 1 ~ 25까지의 숫자 랜덤 초기화 (콘솔에 출력금지) 3. 콘솔에 각 요소좌표 출력 [0, 0] [0, 1] [0, 2] [0, 3] [0, 4] [1, 0] [1, 1] [1, 2] [1, 3] [1, 4] [2, 0] [2, 1] [2, 2] [2, 3] [2, 4] [3, 0] [3, 1] [3, 2] [3, 3] [3, 4] [4, 0] [4, 1] [4, 2] [4, 3] [4, 4] 4. 스캐너로 1~25까지의 숫자 입력 (내 역할 a, 상대방 b로 구분해서) 5. 입력한 숫자의 좌표를 찾아 화면에 좌표대신 숫자 출력 입력한 숫자가 25이고 좌표의 위치가 [2, 2] 라면, [0, 0] [0, 1] [0, ..

    🔥자바스터디🔥 자바의 정석 CH6 객체지향 프로그래밍(클래스, 메소드, 오버로딩, 생성자)

    1. 객체지향언어 - 객체지향이론 개념 : 실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다. 1.1 객체지향언어 - 코드의 재사용성이 높다. (기존코드를 이용하여 쉽게 작성) - 코드의 관리가 용이하다. (코드간의 관계를 이용해서 쉽게 변경가능 - 유지보수) - 신뢰성이 높은 프로그래밍을 가능하게 한다. (제어자와 메소드를 이용해서 데이터를 보호 및 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오동작을 방지할 수 있다. ) 2. 클래스와 객체 2.1 클래스와 객체의 정의와 용도 클래스의 정의 : 객체를 정의해 놓은것 클래스의 용도 : 객체를 생성하는데 사용 객체의 정의 : 클래스에 정의된 내용대로 메모리에 생성된 것 객체의 용도 : ..

    🔥자바스터디🔥 자바의 정석 CH5 배열(Array)

    1. 배열(Array) - 배열(Array)이란 선형 자료구조(Data Structure)중 하나로, 동일한 타입의 연관된 데이터를 메모리에 연속적으로 저장하여 하나의 변수에 묶어서 관리하기 위한 자료 구조이다. - 배열의 길이는 최초 선언한 값으로 고정되며 위와 같이 인덱스(Index)를 통해 데이터에 접근 할 수 있다. 1.2 배열의 선언 타입[] 변수이름; int[] score; 타입 변수이름[]; int score[]; 1.3 배열의 생성 - 배열을 선언하면 생성된 배열을 담기 위한 참조변수를 위한 공간이 만들어 진다. 데이터를 배열에 저장하여 활용하려면 배열을 생성해야한다. (저장될 공간 생성) - 연산자 new 와 함께 배열의 타입과 크기를 지정해주어야한다. (길이 0도 가능) int[] sc..

    🔥자바스터디🔥 자바의 정석 CH4 조건문과 반복문(if, switch, for, while)

    1. 조건문 - if, switch 조건문은 조건식과 문장을 포함하는 블럭으로 구성되어 있으며, 조건식의 연산결과에 따라 실행할 문장이 달라져서 프로그램의 실행흐름을 변경할수 있다. 1.1 if문 if(조건식){ // 조건식이 참일때 수행될 문장 } - 조건식 : 비교연산자와 논리연산자로 구성, 결과값은 반드시 true 또는 false이어야 한다. - 블럭{} : 블럭 내의 문장이 하나일 경우 괄호를 생략할 수 있다. 1.2 if-else문 / if-else if문 [if-else문] if(조건식){ // 조건식이 참일때 수행될 문장 }else { // 조건식이 거짓일때 수행될 문장 } [if-else if문] if(조건식1){ // 조건식1이 참일때 수행될 문장 }else if(조건식2) { // 조건..

    🔥자바스터디🔥 instanceof / 화살표(->) 연산자 / (optional) Java 13. switch 연산자

    1. instanceof - 객체 타입을 확인하는데 사용한다. 속성은 이항연산자이고 형변환 가능여부를 가능하면 true 불가능하면 false로 리턴해준다. 주로 상속 관계에서 부모객체인지 자식객체인지 확인하는데 사용한다. - null 은 어떤 것의 instance 도 아니다. ※ 주의할점 ( 뒤에 나오는 예제를 통해 확인 할 수 있다. ) // 주의할점은 조건문의 순서는 가장 최하위 클래스 부터 작성해야한다. // 그이유는 최상위 클래스를 맨위에 적어버린다면 첫번째 조건문에서 true를 만족하기때문에 첫번째 조건만을 수행한다. public class InstanceofExam { public static void main(String[] args) { A a = new A(); B b = new B();..

    🔥자바스터디🔥 자바의 정석 CH3 연산자(단항, 산술, 비교, 논리 등)

    1.1 연산자(operator) 연산자 : 연산을 수행하는 기호(+,-,*,/ 등) 피연산자 : 연산자의 작업대상(변수, 상수, 리터럴, 수식) - 연산자는 피연산자로 연산을 수행하고 나면 항상 결과값을 반환한다. 1.2 식과 대입연산자 식(expression) : 4 * 5 +3; 과 같이 연산식을 의미한다. 식을 실행하면 결과값을 반환하지만 저장 공간 등을 설정하지 않았기 때문에 어디에도 쓰이지 않고 사라지게 된다. 대입연산자(=) : 식을 계산하여 결과를 얻은 후(식의평가) 결과값을 저장하기 위해 사용된다. (y = 4 * 5 +3;) 1.3 연산자의 종류 연산자는 크게 산술, 비교, 논리, 대입연산자로 나눌수 있고, 피연산자의 개수로 연산자를 분류하기도 한다. 피연산자의 개수가 하나면 단항연산자,..

    🔥자바스터디🔥 변수의 스코프와 라이프타임 / 타입 변환, 캐스팅 그리고 타입 프로모션

    1. 변수의 스코프와 라이프타임 변수의 스코프란 해당 변수를 사용할 수 있는 영역범위를 뜻한다. (보통 {}괄호 안에서 선언되고 사용되어진다.) 라이프타임은 해당 변수가 메모리에 언제까지 살아있는지를 의미한다. 단, 지난 포스팅에서 언급했듯이 가비지 컬렉터가 발동하는 주기는 알수 없으므로 정확한 라이프타임 또한 알수 없다. 변수의 경우 선언하는 위치(scope)에 따라 Instance Variables, Class Variables, Local Variables 로 나눌 수 있다. Instance Variables - 클래스 안에서 선언되어있고, 어떠한 method나 block안에서 선언되지 않은 변수 scope - static method를 제외한 클래스 전체 (static메소드 호출 시 객체의 생성 ..

    🔥자바스터디🔥 자바의 정석 CH2 변수의 선언과 초기화, 데이터 타입, 형변환

    1. 변수의 정의 단 하나의 값을 저장할 수 있는 메모리 공간 - 하나의 변수에 하나의 값만 저장할 수 있으므로, 새로운 값을 저장하면 기존의 값은 사라진다 2. 변수의 선언 자바스크립트와 달리 자바는 변수를 사용하려면 먼저 변수를 선언해야한다. (변수의 데이터 타입과 변수 이름으로 구성하여 선언한다.) 변수의 데이터타입은 기본형(순수 값)과 참조형(객체의 주소)으로 구분되어지며, 참조형은 객체(클래스, 배열, 인터페이스, 맵 등)를 의미한다고 보면된다. 변수의 이름은 하나의 데이터가 저장된 메모리 공간에 이름을 붙여줌으로써 해당 메모리의 위치값을 이용하지 않고 변수명으로 해당위치에 데이터를 저장하고 읽어올 수 있다. 따라서, 변수명은 같은 이름으로 여러개가 존재해서는 안된다. (서로 구별할수 있어야하기..

    🔥자바스터디🔥 자바의 정석 CH1 자바언어의 특징, JVM, 자바 컴파일러

    1. 자바언어의 특징 자바의 정석에 나열된 자바언어의 특징으로 운영체제에 독립적인 부분이 가장 먼저 언급되어있는데, 이는 자바가상머신(JVM)을 통해서 운영체제와 소통하기 때문에 자바언어 자체는 운영체제와 독립되어 운영되고, JVM은 운영체제에 종속적이라 어떻게 보면 세트메뉴와 같은데 독립적이라고 표현하는게 맞는지 잘 모르겠다. 이외의 특징으로 객체지향언어이다 - 처음 이 부분을 보았을땐 요즘은 다 객체지향언어이지 않은가 생각했었는데, 그 뒤의 객체지향개념의 특징으로 언급된 상속, 캡슐화, 다형성 부분을 다루는 언어는 내가 알고 있는 언어중에는 없는것 같다. (알고있는 프로그래밍 언어 - 자바, 자바스크립트, 파이썬 정도?) 비교적 배우기 쉽다. - C, C#, C++ 등등 C로 시작하는 언어는 게임, ..

    [인프런] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술(회원 관리 예제 - 웹 MVC 개발)

    출처 : 인프런 강의 중 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 28강 중 19강까지 @GetMapping("/") 는 기본 localhost:8080 을 의미한다. 즉 welcome page 앞선 강의에서(7강 정적컨텐츠) welcome page는 따로 설정하지 않으면 resoureces > static > index.html을 찾는다고했다. 이번에 mvc 개발 강의에서는 컨트롤러에 Mapping하여 view page를 지정해주었다. (index.html 보다 controller가 우선순위가 높다) spring에서 배울때 Mapping 어노테이션을 주로 @RequestMapping으로 통일해서 사용하는걸 배웠는데 spring boot는 클라이언트가 요청하는 방식에 따라..

    [인프런] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술(스프링 빈과 의존관계)

    출처 : 인프런 강의 중 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 28강 중 16강까지 스프링의 가장 큰 특징인 의존성 주입(DI)를 위해 스프링 빈을 등록하는 과정이 필요하다. 사실 국비지원과정을 들으면서 servlet-context.xml 이나 root-context.xml에서 으로 업로드 경로를 설정한다던가 view파일의 경로를 지정한다든가 등등의 경로 설정의 의미로 사용된다는 것은 인지하고 있었지만, 따로 controller, service에서 어노테이션을 사용할때 각자의 역할때문이라고만 생각했었다. 그냥 필수불가결한 것이라고만.. 하지만 이번 강의에서는 각각의 어노테이션 속에 @component 라는 어노테이션이 포함되어있어 스프링 빈으로 자동 등록되는 것이라고 ..