본문 바로가기

BackEnd/Java57

[Java] 텍스트 형식 Text Format 텍스트 형식 Text Format 문자열에 변수의 값을 함께 출력하는 방법은 여러가지가 있다. 상황에 따라 텍스트 형식을 사용하면 더욱 간편하게 출력할 수 있다. 아래의 세 방법은 모두 같은 결과 "이름 : 홍길동 아이디 : hong5000 tel : 010-5569-8102" 를 출력한다. 방법01. 가장 기초적인 방법은 다음과 같은 방법이다. (텍스트 형식 사용 X) public class TextFormat01 { public static void main(String[] args) { String name = "홍길동"; String id = "hong5000"; String tel = "010-5569-8102"; System.out.println("이름 : " + name + " ,아이디 : .. 2021. 7. 8.
[Java] 배열 복사 (깊은 복사 vs 얕은 복사) 배열 복사 배열 복사에는 얕은 복사, 깊은 복사 두 가지가 있다. 얕은 복사 주소값이 복사된 배열이기 때문에, 원본 배열이 변경되면 복사된 배열 또한 변경된다. package may31; import java.util.Arrays; public class ArrayCopy01 { public static void main(String[] args) { int[] arr01 = {10, 20, 30}; int[] arr02 = new int[3]; arr02 = arr01; //arr01만 수정해도, arr02의 값도 수정된다. //arr01의 0번째 원소의 값 바꾸기 arr01[0] = 100; System.out.println(Arrays.toString(arr01)); //[100, 20, 30] S.. 2021. 7. 6.
[Java] Object Object 클래스는 java.lang 내 최상위 클래스이며 다른 타입들은 기본형 형태로 저장되어있다. 자바가 api를 정의한 모든 클래스와 사용자가 만든 클래스의 최상위 클래스이다. ​ 모든 클래스는 이 Object를 상속받아서 사용한다. 그래서 String이 Object를 거쳐 int로 변환될 수 있기도 한 것이다. ​ Object는 자동 import 된다. Object 하위에는 - String - Boolean - StringBuffer - Character - Number -- Byte, Short, Integer, Long, Float, Double 2021. 7. 1.
[Java] 접근제어자 Access Modifier 접근제어자 Access Modifier 자바에서는 접근 제어자를 통해서 각 API의 접근 권한을 제한할 수 있다. 클래스 앞에 붙는 접근제어자는 public, default만 가능하다. 클래스를 만들 때 어떤 클래스에 public을 붙여야 하는가? : 자바 파일명과 동일한 대표 클래스 사람이 소스코드를 읽을 때 public 키워드가 붙은 클래스를 본다면 현 소스가 어떤 자바 파일 이름으로 되어있는지 알 수 있습니다. 즉, public이 없는 클래스는 자바 파일명과 동일한 클래스가 아니라는 것! 그렇다면 왜 파일 이름과 public 클래스명을 맞춰야 하는가? : 가독성 자바 파일 안에 많은 클래스를 정의할 때 하나의 대표 클래스를 지정하고 파일명과 동일하게 맞추는 것이 가독성에 도움이 되기 때문이다. 접근.. 2021. 7. 1.
[Java] 스태틱 Static Static 정적인 static은 정적이라는 의미를 가지고 있다. 자바에서는 정적 개념과 동적 개념을 구분하고 있는데, 쉽게 표현하면 정적은 클래스가 로드되는 시점을 이야기하고, 동적은 로드된 클래스가 실행된 이후를 말한다. ​ 이 중 객체는 동적 데이터라고 해서 프로그램이 실행된 이후에 발생되는 대표적 형태이다. 그러므로 정적 변수, 정적 메소드는 객체(동적) 생성 없이 호출이 가능하도록 클래스 안에 정의한 것이다. 1. 정적 변수와 인스턴스 변수 정적 변수 모든 객체를 통틀어서 하나만 생성되고 같은 클래스로부터 나온 모든 객체가 공유한다. 객체를 통하지 않고 사용할 수 있는 멤버 클래스명.변수명으로 호출 인스턴스를 생성하지 않고 사용 하나의 클래스에 하나의 변수만 가능 객체보다 클래스에 의지한다(클래.. 2021. 7. 1.
[Java] 오버라이드, 오버로드 오버라이드(override) 오버라이드는 상속 관계(부모관계 or 인터페이스)에서만 사용가능하다. 상속받은 부모 메소드를 자식 클래스에서 재정의 하여 상황에 맞게 활용하는 것이다. 재정의하는 것이기 때문에 메소드 이름, 리턴타입, 파라미터 등은 동일해야 한다. 오버라이드 하는 메소드 위에 @Override 를 넣어주어 오버라이드 된 메소드임을 표시해준다. ※ 오버라이드 시 주의점 메소드의 형식은 상속받은 메소드와 동일해야 한다. 접근제어자는 반드시 부모의 것과 같은 범위거나 더 큰 범위여야 한다. 재정의된 메소드의 부모 메소드는 자식의 것에서는 은닉(Hide)되어지기 때문에, 직접적으로는 더이상 호출되지 않는다. 은닉 된 부모 메소드를 호출할 때엔 super라는 부모 객체를 호출하는 키워드를 통해 호출한.. 2021. 7. 1.
[Java] 객체지향프로그래밍 OOP* 객체지향프로그래밍 Object Oriented Programming 객체지향 vs 절차지향 객체지향 객체를 만들어서 순서에 연연하지 않고 자주 쓰거나 필요한 부품은 따로 정의하여 모듈화 하는 등의 장점을 가진 기법이다. 객체의 호출 순서에만 영향을 받는다. 절차지향 하나의 로직을 순서대로 진행하여 처리하는 기법이다. 객체지향프로그래밍의 특징 캡슐화 캡슐화 = 보안 = 보호 관련된 데이터(필드)와 기능(메소드)이 하나의 묶음으로 관리된다. 상속 이미 작성된 부모 클래스를 이어받아 새롭게 만드는 것 자식 클래스는 부모 클래스의 모든 속성과 메소드를 사용할 수 있다. 부모 클래스에 없는 기능은 자식 클래스에 추가해 사용한다. 추상화 실제 객체를 인스턴스화 할 때, 불필요한 것을 제외하고 필요한 것만 유지한다... 2021. 7. 1.
[Java] 동적가변배열 Dynamic Array 동적가변배열 동적가변배열이 아닌 일반 배열은 처음부터 배열의 길이를 초기화해서 만들어 사용한다. 반면에 동적가변배열은 배열의 길이를 동적으로, 필요시에 생성한다. 즉, 동적가변배열은 필요시에 필요한 만큼 만들어서 사용하는 배열이다. 다음과 같이 []안을 비워두고 선언하여 동적가변배열을 생성할 수 있다. int[][] arr = new int[3][] 예제 01. 길이가 1씩 증가하는 동적가변배열 package may31; import java.util.Arrays; public class DynamicArray { public static void main(String[] args) { int[] arr = new int[3]; int[][] arr01 = new int[3][3]; char[][] ar.. 2021. 7. 1.
[Java] 날짜 형식 Date Format 날짜형식 Date Format Calendar 클래스와 Date 클래스를 이용하여 D-day, 나이 계산 등을 쉽게 할 수 있다. 1. import java.util.Calendar; Calendar cal = Calendar.getInstance(); 와 같이 Calendar의 인스턴스 cal을 생성할 수 있다. 왜 Calendar는 Calelndar cal = new Calendar(); 이라고 안할까? 1-1. cal 객체를 그대로 출력하면 System.out.println(cal); → java.util.GregorianCalendar[time=1625629233275,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calend.. 2021. 7. 1.
[Java] 문자(Character), 문자열(String) 문자와 문자열 이름이 비슷하지만, 문자와 문자열은 완전히 다른 개념이다. 문자는 'A'와 같이 한 글자를 나타내는 용어이고, 문자열은 "안녕하세요" 같은 긴 문장을 나타내는 용어이다. 1. 문자(Character) Character.isUpperCase(char); 입력한 char이 대문자면 true, 그 외 문자들(소문자, 숫자, 특수기호)이면 false 반환 Character.isLowerCase(char); 입력한 char이 소문자면 true, 그 외 문자들(대문자, 숫자, 특수기호)이면 false 반환 Character.isDigit(char); 입력한 char이 숫자이면 true, 그 외 문자들(영문자, 특수기호)이면 false 반환 2. 문자열(String) char배열에 여러 가지 기능을 추.. 2021. 7. 1.
[Java] 다차원 배열 Multi Array 다차원 배열 Multi Array 다차원 배열 선언 자료형[][] 배열이름 = new 자료형[행][열]; int[][] multiArr01 = new int[2][4]; 위와 같이 선언한다면, multiArr01 이라는 배열은 2행 4열의 배열이 될 것이고, 자료형은 int(정수형)가 된다. 다차원 배열의 원소 불러오기 multiArray[2][3] 은 multiArray의 2행 3열의 원소를 불러온다. 배열이름.length 와 배열이름[행].length multiArray.length = 2 → 행 길이 multiArray[1].length = 3 → 열 길이 이 부분이 헷갈릴 수 있는데, multiArray[1]은 1행을 의미하는 것 같기 때문에 행 길이가 출력되어야 할 것 같은 느낌이 들기 때문이다.. 2021. 7. 1.
[Java] 배열 Array 배열 Array 배열은 동일(유사)한 타입의 데이터를 하나의 묶음 형태로 관리하기 위해 사용되는 자료구조이다. int 타입의 변수가 100개 정도 필요하다면 변수명 만드는데에도 많은 시간이 걸리고, 관리도 어려울 것이다. 이런 어려움을 극복하고자 사용되는 것이 배열이다. 배열은 객체이지만, 객체 중 유일하게 속성만 가지고 있는 객체이다. (객체는 기본적으로 속성과 메소드를 모두 갖는다.) 객체의 속성과 메소드를 호출할 때는 .(점)을 이용해서 한다. 배열의 속성은 index(위치), length(길이) 두 가지가 있고, arr01.length 와 같이 배열의 길이를 호출할 수 있다. ​ ​ 배열 생성식 배열을 생성하는 방법은 세 가지가 있다. 1) int[] arr01 = new int[5] 값을 따로 .. 2021. 7. 1.