목록공부/JAVA (41)
랩터
내부 클래스내부 클래스(Inner Class)는 클래스 내에 선언된 클래스로, 외부 클래스와 내부 클래스가 서로 연관되어 있을 때 사용합니다. 내부 클래스를 사용하면 외부 클래스의 멤버들에 쉽게 접근할 수 있고, 코드의 복잡성을 줄일 수 있습니다. 또한 외부적으로 불필요한 데이터를 감출 수 있어 뒤에서 학습하게 될 객체지향의 중요한 핵심 원칙인 캡슐화를 달성하는데 유용합니다. 세 가지의 내부 클래스의 종류는 각각 인스턴스 내부 클래스, 정적 내부 클래스, 그리고 지역 내부 클래스로 구분할 수 있습니다.종 류 선언 위치 ..
필드(Field)필드는 ‘클래스에 포함된 변수'를 의미하는 것으로 객체의 속성을 정의할 때 사용됩니다. 자바에서 변수는 크게 클래스 변수(cv, class variable), 인스턴스 변수(iv, instance variable), 그리고 지역 변수(lv, local variable)라는 세 가지로 구분될 수 있습니다. 이 중 우리가 필드라 부른 것은 클래스 변수와 인스턴스 변수이며, 이 둘은 다시 static 키워드의 유무로 구분할 수 있습니다. static키워드가 함께 선언된 것은 클래스 변수, 그렇지 않은 것은 인스턴스 변수입니다. 그리고 이 두가지 변수 유형에 포함되지 않고 메서드 내에 포함된 변수를 지역변수라 부릅니다.class Example { // => 클래스 영역 int instanceVa..
생성자는 말 그대로 객체를 생성하는 역할을 하는 크래스의 구성 요소로서, 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드라 정리할 수 있습니다. 인스턴스 생성은 new키워드이며, 생성자는 인스턴스 변수들을 초기화하는데 사용되는 특수한 메서드라 할 수 있습니다. 생성자는 메서드와 두가지 차이가 있습니다. 첫번째는 생성자의 이름은 반드시 클래스의 이름과 같아야 합니다.두번째로, 생성자는 리턴 타입이 없습니다. 하지만 void키워드를 사용하지않습니다. 생성자는 리턴 타입자체가 존재하지 않기 때문입니다. this vs this()this()앞서 메서드의 호출 내용에서 같은 클래스 안에 메서드들끼리 서로 호출할 수 있었던 것처럼 생성자도 상호 호출이 가능합니다. 그리고 이를 위해 사용하는 것이 바로 this..
변수의 데이터 타입을 가장 크게 보면 기본형과 참조형으로 분류할 수 있다. 사용하는 값을 변수에 직접 넣을 수 있는 기 본형, 그리고 이전에 본 Student student1 과 같이 객체가 저장된 메모리의 위치를 가리키는 참조값을 넣을 수 있는 참조형으로 분류할 수 있다.기본형(Primitive Type): int , long , double , boolean 처럼 변수에 사용할 값을 직접 넣을 수 있는 데이 터 타입을 기본형이라 한다.참조형(Reference Type): Student student1 , int[] students 와 같이 데이터에 접근하기 위한 참조 (주소)를 저장하는 데이터 타입을 참조형이라 한다. 참조형은 객체 또는 배열에 사용된다.기본형은 연산이 가능하지만 참조형은 연산이 불가..
클래스(Class)란 이러한 객체를 정의한 '설계도(blueprint)' 또는 '틀(frame)’이라 정의할 수 있습니다. 즉, 클래스는 객체를 생성하는 데 사용되며, 반대로 객체는 클래스에 정의되고 설계된 내용 그대로 생성됩니다. 클래스를 통해 생성된 객체를 우리는 해당 클래스의 인스턴스(instance)라 부릅니다. 또한 클래스로부터 객체를 만드는 과정을 우리는 인스턴스화(instantiate)라 지칭합니다. 1.변수 선언Student student1 // Student 변수 선언 Student 타입을 받을 수 있는 변수를 선언한다.int 는 정수를, String 은 문자를 담을 수 있듯이 Student 는 Student 타입의 객체(인스턴스)를 받을 수 있다. 2.객체 생성student1 = n..
네이티브 애플리케이션은 Apple ios, android os, windows 와 같은 특정 실행 환경에 종속되게 됨. 네이티브 애플리케이션의 장점웹애플리케이션보다 빠릅니다.애플리케이션이 설치된 기기의 시스템/기기의 리소스에 접근이 용이합니다.(GPS 기능이나 카메라).인터넷 없이 사용 가능합니다.웹애플리케이션에 비해 안전합니다.(모바일의 경우 앱스토어에 승인을 받아야 합니다. 네이티브 애플리케이션의 단점웹애플리케이션에 비해 개발비가 더 들어간다(아이폰과 안드로이드 간의 멀티 플랫폼 개발 등).빠른 업데이트가 힘들다.앱스토어에 승인받기가 힘들고 비용이 발생한다.웹애플리케이션은 웹 브라우저를 통해 접근이 가능한 애플리케이션이다. 웹애플리케이션의 장점브라우저를 통해 실행되기 때문에 설치나 다운로드가 필요 없..
가장 기본적인 연산 방식이지만 이를 프로그램으로 만들기는 그리 간단하지 않습니다. 사용자가 입력한 값에 맞는 구구단을 제어문과 반복문을 활용하여 프로그램을 만들어 주세요. package com.codestates.seb.gugudan;import java.util.Scanner;public class gugudan { public static void main(String[] args) { //TODO: // 0. 구구단을 정의하기 전 구구단 연산을 위한 변수를 선언합니다. System.out.println("[안내]희망하는 구구단을 숫자로 입력해 주세요 "); // 1. 단을 입력합니다. // 클래스에 포함된 메서드를 활용하기 위해 객체 생성 // Scanner(클래스..
1. 운영체제에 독립적자바 이전의 언어들은 특정 CPU에서만 작동하거나 특정 OS에 따라 다르게 작성해야 하는(C, C++) 언어들이 대부분이었습니다. 자바는 이 문제를 해결하고자 JRE(Java Runtime Environment: JVM(자바 가상머신) + 표준 클래스 라이브러리)가 설치되어 있는 모든 운영체제에서 실행이 가능하도록 만들어졌습니다. 2. 객체 지향 언어(Object Oriented Programming, OOP)자바는 객체 지향 프로그래밍 개념을 사용하는 언어입니다. 따라서 모든 기능은 객체로 만들어 사용해야 합니다. 객체는 프로그램이 동작하는 부품이라고 생각하면 됩니다. 여러 부품(객체)들을 만들고 조립하여 하나의 프로그램을 실행하는 개념이 OOP입니다. 객체 지향적으로 설계된 프..
-JDK 설치Zulu OpenJDK 다운로드 페이지에 접속합니다. Java Version과 Operating System, Architecture를 선택합니다.https://www.azul.com/downloads/?version=java-11-lts&os=windows&architecture=x86-64-bit&package=jdkArchitecture는 내 컴퓨터 → 속성에서 64bit or 32bit 운영체제를 확인하고 선택합니다. 선택을 모두 완료했다면 ‘.msi’ 버튼을 눌러 다운로드합니다.다운로드한 파일 실행후 NEXT 버튼 쭉 누르고 FINISH누른다음 cmd를 열어서 java를 입력해보세요.아래와 같은 실행 결과를 확인 할수 있습니다. -IntelliJ 설치IntelliJ(Windows) ..
메서드 오버라이딩(Method Overriding)은 상위 클래스로부터 상속받은 메서드와 동일한 이름의 메서드를 재정의하는 것을 의미합니다. public class Main { public static void main(String[] args) { Bike bike = new Bike(); Car car = new Car(); MotorBike motorBike = new MotorBike(); bike.run(); car.run(); motorBike.run(); } } class Vehicle { void run() { System.out.println("Vehicle is running"); } } class Bike extends Vehicle { void run() { System.out.pr..