no image
[Java] 이것이 자바다 - #인터스페이스
☕ 인터페이스 역할 : 자바에서는 인터페이스는 객체의 사용 방법을 정의한 타입이다. 인터스페이스는 객체 교환성을 높여주기 때문에 다형성을 구현하는 매우 중요한 역할을 한다. - 자바 8에서 인터스페이스의 중요성은 더욱 커졌다. 자바 8의 람다식은 함수적 인터스페이스의 구현 객체를 생성하기 때문이다. 🥨 인터스페이스 역할 요약 - 인터스페이스는 개발코드와 객체가 서로 통신하는 접점 역할. - 인터스페이스는 객체의 메소드를 호출. 개발 코드가 직접 객체의 메소드를 호출하면 간단한데, 중간에 인터페이스를 두는지 의문이 생길 수 있다. 그 이유는 개발코드를 수정하지 않고, 사용하는 객체를 변경할 수 있도록 하기 위해서이다. 인터스페이스는 하나의 객체가 아니라 여러 객체들과 사용이 가능하므로 어떤 객첵를 사용하느..
2023.04.25
no image
[Java] 이것이 자바다 - #상속
☕ 상속 개념 : 부모 클래스의 멤버를 자식 클래스에게 물려줄 수 있다. 부모 클래스를 상위 클래스라 부르기도 하고, 자식 클래스를 하위 클래스 또는 파생 클래스라 부른다. 🥨 상속 장점 1. 코드의 중복을 줄여준다 2. 효율적이고 개발 시간을 절약시켜준다 3. 클래스의 수정을 최소화시킨다. 4. 유지 보수 시간을 최소화 시켜준다. ☕ 클래스 상속 : 프로그램에서는 자식이 부모를 선택한다. 어떤 부모 클래스를 상속 받을 것인지 결정하고 부모 클래스는 다음과 같이 extends 뒤에 기술한다. Class 자식클래스 extends 부모클래스 { // 필드 // 생성자 // 메소드 } Class SportsCar extends Car { } 🥨 다른 언어와 달리 자바는 다중 상속을 허용하지 않는다. ☕ 부모 ..
2023.04.24
no image
[Java] 이것이 자바다 - #클래스
☕ 객체 지향 프로그래밍(OOP) : 소프트웨어를 개발할 때에도 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립해서 완성된 프로그램을 만드는 기법. => 객체 개념과 객체 상호작용 🥨 객체란? : 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것 - 자바는 이 속성과 동작들을 각각 필드와 메소드라고 부른다. - 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링이라 한다. 객체 모델링은 현실 세계에서 속성과 동작을 추려내어 소프트웨어 객체의 필드와 메소드로 정의하는 과정이다. 🥨 객체의 상호작용 : 객체들의 상호작용 수단은 메소드이다. 객체가 다른 객체의 기능을 이용하는 것이 메소드 호출이다, - 메소드 호출은 다음과 같은 형태를..
2023.04.21
no image
[Java] 이것이 자바다 - #참조타입
☕ 데이터 타입 분류 - 데이터 타입은 크게 기본타입, 참조타입으로 분류 된다. - 기본 타입: 정수, 실수, 문자, 논리 리터럴 - 참조 타입: 객체의 번지를 참조하는 타입 -> 배열, 열거, 클래스, 인터스페이스 배열, 열거, 클래스, 인터스페이스를 이용해서 선언된 변수는 메모리의 번지를 값으로 갖는다. 번지를 통해서 참조한다는 뜻에서 참조 타입이라고 부른다. // 기본 타입 변수 int age = 24; double price = 100.5; // 참조 타입 변수 String name = "김자바"; String hobby = "독서"; 변수는 스택 영역에서 생성되고, 객체는 힙 영역에서 생성된다. String 클래스 변수인 name과 hobby는 힙 영역의 String 객체 주소 값을 가진다. 주..
2023.04.12
no image
[Java] 이것이 자바다 - #연산자
☕ 연산자와 연산식 - 연산: 프로그램에서 데이터를 처리하여 산출하는 것 - 연산자: 연산에 사용되는 표시나 기호 => ex: +, -, *, == - 피연산자: 연산되는 데이터 => ex: x, y, z - 연산식: 연산자와 피연산자를 이용하여 연산의 처리 과정을 기술 한 것 -> 반드시 하나의 값을 산출한다 - 비교 연산자와 논리 연산자는 논리 타입으로 나온다 ☕ 연산의 방향과 우선순위 - 대부분의 연산자는 왼쪽에서 오른쪽(-->)연산을 시작한다. 100 * 2 / 3 % 5 - 하지만, 단항 연산자(++. --, !, ~), 부호 연산자(+, -), 대입 연산자(=, +=, -=, ...)는 오른쪽에서 왼쪽() 4. 복잡한 연산식에는 괄호( ) 를 사용해서 우선순위를 정해준다. ☕ 단항 연산자 - ..
2023.04.12
no image
[Java] 이것이 자바다 - #변수
☕ 변수란 - 프로그램은 작업을 처리하는 과정에서 필요에 따라 데이터를 메모리에 저장한다. 이 때 변수를 사용하는데 변수는 값을 저장할 수 있는 메모리 공간을 의미한다 - 변수는 복수의 개의 값을 저장할 수 없고, 하나의 값만 저장할 수 있다. ☕ 변수 선언 - 변수를 사용하기 위해서는 변수를 선언해야한다. - 같은 타입의 변수를 콤마(,)를 이용해서 한꺼번에 선언할 수 있다. int x, y, z - 자바는 명명규칙을 따라야한다. - 예약어들로 변수 이름을 지정하면 컴파일 에러가 발생하기 때문에 주의해야한다. - 개발자는 이 변수가 어떤 값을 저장하고 있는지 쉽게 알 수 있도록 의미 있는 변수 이름을 지어주는 것이 좋다. ☕ 변수 값 사용 - 변수에 값을 저장하고 읽는 행위를 말한다 ☕ 변수값 저장 -..
2023.04.10
no image
[Java] 이것이 자바다 - #자바 시작하기
☕ 프로그래밍 언어란? - 프로그래밍 언어는 고급 언어와 저급 언어로 구분된다. 고급 언어란 컴퓨터와 대화할 수 있도록 만든 언어 중에서 사람이 쉽게 이해할 수 있는 언어다. 저급 언어란 기계어에 가까운 언어인데 대표적으로 어셈블리어가 있다. ☕ 자바 특징 ⛅이식성이 높은 언어다 - 이식성이란 서로 다른 실행 환경을 가진 시스템간에 프로그램을 옮겨 실행할 수 있는 것을 말한다. 자바 실행 환경(JRE)이 설치되어 있는 모든 운영체제에서 실행 가능하다 - 따라서 자바는 이식성이 높은 언어다 ⛅객체 지향 언어이다 - 객체 지향 프로그래밍: 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법 -> 객체 지향 언어 - 자바는 100% 객체 지향 언어이다. 객체를 만들기 위해 설계도인 클래스를 작성해야하고, ..
2023.04.10
no image
[JAVA] 회원 관리 프로그램 만들기
☕ 회원 관리 프로그램 만들기 1. 회원 등록 2. 회원 목록 보기 3. 종료 - 프로그램을 실행하면 /tmp/users.dat 파일에서 회원정보를 읽어온다 - 해당 파일이 없을 경우 읽어오지 않는다 - 프로그램 종료시, 메모리에 있는 회원정보를 /tmp/users.dat에 저장한다 - 프로그램을 강제 종료하면 입력된 회원 정보는 저장이 안될 수도 있다. ☕ 회원 등록 구현 - 회원의 email을 입력하세요: urstory@gmail.com - 회원의 이름을 입력하세요: 홍길동 - 회원의 생년을 입력하세요: 1980 - 등록되었습니다. ☕ 회원 등록 구현 예제 파일 UserMain.java package com.example.io; import java.util.List; public class User..
2023.04.10
no image
[JAVA] Java IO 2편
☕ File 클래스 - java.io.File 클래스는 파일의 크기, 파일의 접긐 권한, 파일의 삭제, 이름 변경 등의 작업을 할 수 있는 기능을 제공하여 준다 - 여기서 주의해야할 것은 디렉토리 역시 파일로써 취급 된다는 것이다. ☕ InputStream, OutputStream - 추상 클래스 - byte 단위 입출력 클래스는 InputStream, OutputStream의 후손이다. ☕ Reader, Writer - 추상 클래스 - char단위 입출력 클래스는 Reader, Writer의 후손이다. import java.io.FileOutputStream; import java.io.OutputStream; public class HelloO01 { public static void main(Str..
2023.04.07