개발/JAVA 21

[JAVA] 자바 static의 사용

현재 국비 학원에서 자바과정을 들으면서 어제 static의 사용법에 관해 배웠다. 내가 수업에서 이해한 바로 설명하자면, static의 영어단어의 뜻은 정적인, 고정적인 이란 뜻인데 객체(인스턴스)의 멤버가 아니라 클래스에 고정되어 있는 멤버이기 때문에 객체의 생성 없이 바로 사용할 수 있는 아주 편리한 녀석이였다. static 메서드나 static 변수를 사용하면 객체를 만들지 않고도 바로 사용할 수 있다는 것이다. 말로 하면 어려울 수 있으니 간단하게 만들어 보았다. 1. 객체 생성 위 사진처럼 객체를 이용해서 1234를 출력해보았다. 다음은 static의 사용이다. 2. static을 사용 이렇게 객체의 생성 없이 호출할 수 있다. JVM에는 ClassLoader이라는 것이 있는데 이 녀석이 .cl..

개발/JAVA 2021.02.20

[JAVA] 자바 접근 제한자 private

흔히 생성자, 메서드 ,변수 선언등을 할때 사용하는것에는 public과 private가 있다. 이를 접근제한자라고 하는데 말 그대로 해당 제한자가 붙은 위치에 접근을 허락하기도 하고 접근을 막으려고 숨기기도 하는 역할을 한다. 이런식으로 변수선언을 할때 앞에 넣어 줄 수 있는데, 위의 그림에서의 class Car1안에서만 해당 변수들을 사용할 수 있따는 말이다. 이러한 filed들을 private로 감춰 놓는 것을 캡슐화라고 한다. 캡슐화는 객체지향의 언어의 특징이라고 할 수 있는데 목적은 정보의 보호에 있다. 왜냐하면 모든 정보가 많이 노출이 되면 이 코드를 보고, 또 재사용 해야하는 개발자나, 실제 사용자가 혼란을 겪을 수 있기 때문이다. 가령 한번만 쓰고 말 코드들은 private처리를 해서 다른 ..

개발/JAVA 2021.02.08

[JAVA]자바 - 배열을 이용하여 아주 간단한 영화 예매하기 만들기

오늘 해볼건 아주 간단한 영화 예매 프로그램이다(프로그램이라 하기에도 그렇다;ㅋㅋ) 우선 배열을 이용할건데 좌석을 보여주고 원하는 자리를 선택하게 한 뒤 그 자리가 예약이 되었다는 의미로 숫자를 0에서 1로 바꾸고 원래 처음 질문인 예매를 할건지 물어보게 반복되는 프로그램을 만들 생각이다. 이렇게 일단은 코드를 적었는데... 자꾸 한바퀴돌고 리셋이 되면 예약되었던 자리가 다시 0으로 돌아간다.. 이런 기본적인 것도 한번에 못하다니 너무 암울하다... 바로 떠오르지 않아 한 두시간 혼자서 머리를 굴려본 결과 약간의 수정을 거쳐 원하는 코드를 만들 수 있었다. import java.util.Scanner; public class Reservation { public static void main(String..

개발/JAVA 2021.02.04

상속과 다형성

상속이란 클래스를 정의 할 떄 이미 구현된 클래스를 상속받아서 속성이나 기능이 확장되는 클래스를 구현. 상위 하위클래스의 형변환 상위클래스 = Customer 하위클래서 = VIPCustomer 이 경우, VIPCustomer은 Customer에도 포함이 된다. VIPCustomer customerKim = new VIPCustomer(10101, "Kim"); 여기서 Customer customerKim = new VIPCustomer(10101, "Kim") 이렇게 표현도 가능하다. 이를 업캐스팅이라고 한다. 메서드 오버라이딩 상위 클래스에 정의 된 메서드 중 하위 클래스와 기능이 맞지 않거나 추가 기능이 필요한 경우 같은 이름과 매개변수로 하위 클래스에서 재정의 함 다형성 하나의 코드가 여러가지 자..

개발/JAVA 2021.01.05

객체 와 클래스

객체(Object) 란? 사전적 의미 - "의사나 행위가 미치는 대상" 구체적, 추상적 데이터 단위 객체지향 프로그래밍(Object Oriented Programming, OOP) cf. 절차지향 프로그래밍(Procedural Programming, 예) C언어) 클래스(Class) 객체에 대한 속성과 기능을 코드로 구현한 것. 객체의 속성 객체의 특성, 속성, 멤버 변수 (property, attribute, member variable) 객체의 기능 객체가 하는 기능들을 메서드로 구현 (method, member function) class는 대부분 대문자로 시작 패키지 이름은 소문자, 패키지 이름은 대문자, 변수, 메서드는 소문자로 시작해서 단어가 바뀔때 마다 대문자 메서드 함수의 일종 객체의 기능..

개발/JAVA 2020.12.27

제어 흐름 이해하기

조건문 if 문 if(조건식) { 수행문1; } else { 수행문2; } 조건식에 해당할 경우 수행문1을 수행, 그 외에 수행문2를 수행 switch-case문 조건식의 결과가 정수 또는 문자열의 값이고 그 값에 따라 수행문이 결정될 때 if -else 대신 switch-case문을 사용 반복문 주어진 조건이 만족 할 때까지 수행문을 반복적으로 수행함 while문 while(조건식) { 수행문1; ... } 수행문2; ... (조건식이 참인동안 반복수행함) for문 이런식으로 for 문을 통해 구구단을 출력할 수 있다

개발/JAVA 2020.12.22

연산자

항: 연산에 사용되는 값 연산자: 항을 이용하여 연산하는 기호 대입 연산자 변수에 값을 대입 하는 연산자 연산의 결과를 변수에 대입 우선 수위가 가장 낮은 연산자 왼쪽 변수에 오른쪽 변수(값)를 대입 // int age = 24; 부호연산자 양수/음수의 표현, 값의 부호를 변경 변수에 +, -를 사용한다고 해서 변수의 값이 변하는게 아님 변수의 값을 변경하려면 대입연산자를 사용 산술연산자 사칙연산에 사용되는 연산자 %는 나머지를 구하는 연산자 증가감소연산자 1만큼 더하거나 1만큼 뺄 때 사용하는 연산자 항의 앞/뒤 위치에 따라 연산의 결과가 달라짐에 유의 num3의 출력값은 11(10에서 +1이 되서 나온다.) num4의 출력값은 각각 10, 11(우선 할당된 10이 나온 뒤 1을 더한 11이 나온다.)..

개발/JAVA 2020.12.21

변수와 자료형 3

상수 변하지 않는 값 상수를 선언 할 땐 final사용 final 로 선언된 상수는 다른 값으로 변할 수 없음 (자바 스크립트의 const와 같은 역할인 듯) final int STUDENT_NUM = 31; int num = 0; if( num == 31) {} System.out.println(31); //이렇게 적을경우 31을 바꿔야 할 때 너무 비효율적임 final int STUDENT_NUM = 31; int num = 0; if( num == STUDENT_NUM) {} System.out.println(STUDENT_NUM); //이런 식으로 선언해 놓은 값을 대입하면 위에 숫자만 한번 바꾸면 끝 (상수는 보통 대문자로 표시하는게 컨벤션임) literal 프로그램에 사용하는 모든 숫자, 값,..

개발/JAVA 2020.12.20

자바 변수 자료형

변수(variable) 프로그램에서 사용되는 자료를 저자하기 위한 공간 할당 받은 메모리의 주소 대신 부르는 이름 프로그램 실행 중에 값 변경이 가능함 **사용되기 이전에 선언 되어야 한다. 변수 선언시 주의점 변수의 이름은 알파벳, 숫자, _, $로 구성된다.(알파벳 대소문자 구분해야함) 변수의 이름은 숫자로 시작할 수 없고, 키워드도 변수의 이름으로 사용할 수 없다. 이름 사이에 공백 X **이름 지정할 경우 역할에 어울리는 의미있는 이름을 지을것 변수가 저장되는 공간의 특성 - 자료형 정수형 문자형 실수형 논리형 1바이트 byte - - boolean 2바이트 short char - - 4바이트 int - float - 8바이트 long - double - int: 정수에 대한 기본 자료형(대부분 ..

개발/JAVA 2020.12.20