항해99/Java 문법 뽀개기 19

객체지향언어 (4) 접근제어자

1-15. 객체지향언어 (4) 접근제어자 접근 제어자 (access modifier) 접근 제어자는 멤버 변수/함수 혹은 클래스에 사용되며 외부에서의 접근을 제한하는 역할을 합니다. → private : 같은 클래스 내에서만 접근이 가능합니다 → protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능합니다. → public : 접근 제한이 전혀 없습니다. → default(nothing) : 같은 패키지 내에서만 접근이 가능합니다. 👉 위의 설명을 토대로 접근 범위에 대해 정리를 하면 다음과 같습니다. (좁음) private → default → protected → public (넓음)

자바문법뽀개기(19) - Retrofit, OpenAPI

http : 통신을 하기 위한 상태에 대한 약속 api : 데이터를 주고 받는 형식에 대한 약속. 요청과 응답의 데이터의 형식에 대한 약속 reqres.in : request response {key, value} 배열은[{key, value}, {key, value}] 이런 형태를 JSON이라는 데이터 형식이라고 함. JSON(JavaScript Object Notation) 일반적으로 서버에서 클라이언트로 데이터를 보낼 때 사용하는 양식. 클라이언트가 사용하는 언어에 관계 없이 통일된 데이터를 주고받을 수 있도록, 일정한 패턴을 지닌 문자열을 생성해 내보내면 클라이언트는 그를 해석해 데이터를 자기만의 방식으로 온전히 저장, 표시할 수 있게 된다. 과거 웹 초기 시절부터 사용되어 온 XML은 헤더와 태..

자바문법뽀개기(17) - 컬렉션(스택, 큐, ArrayDeque)

자료구조를 뜻함. LIFO(Last In First Out) import java.util.Stack; public class Main { public static void main(String[] args) { Stack stack = new Stack(); stack.push(1); stack.push(3); stack.push(7); stack.push(5); System.out.println(stack); System.out.println(stack.peek()); System.out.println("size: "+stack.size()); System.out.println(stack.pop()); System.out.println("size: "+stack.size()); } } =>[1, 3,..

자바문법뽀개기(16) - 컬렉션(리스트, 셋, 맵)

컬렉션 프레임워크란? 다수의 데이터를 다루기 위한 자료구조를 표현하고 사용하는 클래스의 집합을 의미합니다! 데이터를 다루는데 필요한 풍부하고 다양한 클래스와 기본함수를 제공하기 때문에 많이 유용합니다! 실제 자바 어플리케이션을 개발할 때 가장 많이 사용할 클래스와 함수를 이번에 배우게 됩니다. 컬렉션 프레임워크의 모든 클래스는 Collection interface를 구현(implement)하는 클래스 또는 인터페이스 입니다. 컬렉션 인터페이스와 자료구조 Collection 은 모든 자료구조가 구현(implement)하는 인터페이스입니다. 아래 배우는 모든 자료구조에 해당하는 클래스, 인터페이스는 언제나 Collection 인터페이스를 구현하고 있습니다. List : 순서가 있는 데이터의 집합이며 데이터의..

자바문법뽀개기(15) - 날짜와 시간 다루기

이제 문법은 끝이고 활용들 배우기.. (객체지향, 예외 나중에 다시 한번 복습해야할 듯.) import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; public class Main { public static void main(String[] args) { System.out.println("now usages"); LocalDate date = LocalDate.now(); LocalTime time = LocalTime.now(); LocalDateTime dateTime = LocalDateTime.now(); System.out.println(date); System.out.println(time)..

자바문법뽀개기(14) - 예외, 에러 처리

예외처리란(Exception, Error Handling) 코드를 완벽하게 짰다고 해서 항상 프로그램이 성공적으로 도는 것은 아닙니다. 다양한 예외 상황이 발생할 수 있는데요. 이것에 대응하기 위해서 예외 처리 코드가 필요합니다. 예외처리의 목적 예외의 발생으로 인한 실행 중인 프로그램의 비정상 종료를 막기 위해서 개발자에게 알려서 코드를 보완할 수 있도록 하게 위해서 자바에서는 상속을 이용해서 모든 예외를 표현합니다. 모든 예외 클래스는 Throwable의 자손 클래스 입니다. Throwable 에는 크게 두 종류의 자식 클래스가 있습니다. Error 는 프로그램이 종료되어야 하는 심각한 문제를 표현합니다. 대부분 컴퓨터나 JVM이 시스템적으로 동작할 수 없는 상황을 표현합니다 💡 Java는 JVM내의..

자바문법뽀개기(13) - 객체지향 퀴즈

....앞의 내용들을 한번에 이해하는 게 비정상이다. 눈치껏 따라 쓰다보면 나중에 알게된다. 라는 생활코딩의 말을 믿고 일단 넘어가자..ㅜ ------Human.java public class Human { String name; int age; int speed; int x,y; public Human(String name, int age, int speed, int x, int y) { this.name = name; this.age = age; this.speed = speed; this.x = x; this.y = y; } public Human(String name, int age, int speed) { this(name, age, speed, 0, 0); } public String getL..

자바문법뽀개기(12) - 객체지향언어(추상클래스, 인터페이스)

추상클래스**(abstract class)** 추상클래스란? 추상클래스는 추상메소드를 선언할 수 있는 클래스를 의미합니다. 또한 추상클래스는 클래스와는 다르게 상속받는 클래스 없이 그 자체로 인스턴스를 생성할 수는 없습니다. 먼저 추상메소드에 대해서 알아보겠습니다. 추상메소드는 설계만 되어있으며 수행되는 코드에 대해서는 작성이 안된 메소드입니다. 이처럼, 미완성으로 남겨두는 이유는 상속받는 클래스 마다 반드시 동작이 달라지는 경우에 상속받는 클래스 작성자가 반드시 작성하도록하기 위함입니다. 추상 메소드 형식 abstract 리턴타입 메소드이름(); 추상클래스란 추상메소드를 선언할 수 있는 클래스 클래스랑은 다르게 상속받는 자식클래스 없이 그 자체로 인스턴스 생성할 수 없음. 추상메소드는 설계만 되어있고 ..

자바문법뽀개기(11) - 객체지향언어(접근제어자)

접근제어자(access modifier) void : return type 자바는 패키지 이름까지 포함해서 실제 클래스 인식. 객체지향프로그래밍이란 객체들 간의 상호작용을 코드로 표현한 것. 접근할 수 있는 것과 아닌 것의 권한을 구분할 필요가 생김. 그래서 클래스 내부에 선언된 데이터의 부적절한 사용으로부터 보호해 주는 게 이 접근 제어자가 하는 역할. 이런 것을 전문 용어로 캡슐화(encapsulation) 접근제어를 짜는 이 캡슐화가 가능할 수 있도록 돕는 자바언어에 있는 하나의 도구 객체지향프로그래밍을 하는 데 있어서 캡슐화가 중요하다. 캡슐화를 달성하기 위한 도구로 접근제어자를 사용한다. ----ModifierTest.java package pkg; public class ModifierTest..

자바문법뽀개기(10) - 객체지향언어(상속)

상속이란 기존의 클래스를 재사용하는 방식 중의 하나입니다.한 번 작성한 코드가 재사용이 필요하다면, 변경사항만 코드로 작성하므로 상대적으로 적은 양의 코드를 작성할 수 있게 됩니다. 이렇게 코드를 재사용하면, 코드와 클래스가 많아질수록 관리가 용이하다는 장점이 있습니다. 상속을 통해 클래스간의 계층구조를 만들게 됩니다. 상속의 특징 부모 클래스로에서 정의된 필드와 메소드를 물려 받습니다. 새로운 필드와 메소드를 추가할 수 있습니다. 부모 클래스스에서 물려받은 메소드를 수정할 수 있습니다. 상속의 형식 → 상속은 extends를 이용하여 사용할 수 있습니다. class Animal{} class Dog extends Animal{} class Cat extends Animal{} 자식(Dog) 객체는 자식..