[ java ] 객체지향 프로그래밍(클래스, 생성자, 메서드, 필드)
·
JAVA
📌 객체지향 프로그래밍(OOP)❓객체지향 프로그래밍 (Object-Oriented Programming, OOP)물리적으로 존재하거나, 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있으면서 식별이 가능한 것물리적 : 자동차, 사람추상적 : 학과, 강의객체는 속성(field) + 동작(method)으로 구성되어져 있다.객체란 ?Ex 학과(객체) = field속성 : 강의, 담당 교수동작 : 강의 평가, 학생 등록Ex 사람(객체) = method속성 : 이름, 나이동작 : 웃다, 울다객체지향 프로그래밍은 이러한 객체를 하나씩 조립해서 완성된 프로그램을 만드는 기법이라고 생각하면 된다.  📌 객체 간의 관계❓객체는 개별적으로 사용이 가능하지만, 대부분 다른 객체와 상호작용을 한다.1️⃣ 집합..
[ java ] Random, Math.Random
·
JAVA
📌 Math.radom()❓최상위 클래스인 Object 클래스 안에 있으므로 Import 시켜주지 않아도 사용이 가능하다.0.0 이상 1.0 미만의 double형 난수를 생성한다.시드(seed) 값을 직접 설정할 수 없다.시드 값이란 생성 초기 값으로, 생성 시작점을 말한다.Math.Random() 시드 값은 현재 시간을 사용한다.double형이 return 되기 때문에, 정수 사용을 위해서는 원하는 정수 크기 만큼 곱셈을 해주어야 한다.1. (int)(Math.random()*10) //0~9사이 정수2. (int)(Math.random()*10000)%10 //0~9사이 정수//1번 사용을 더 권장 ❗ (int) 캐스팅은 소수점을 반올림하지 않고 버린다.  📌 Random()❓ java.util...
[ java ] 배열 (복사, 비교) , 2차원배열 개념
·
JAVA
📌 배열 , 2차원 배열배열(array)은 인덱스(index)와 인덱스에 상응하는 데이터들로 이루어진 연속적인 자료구조배열은 기본형 배열과 참조형 배열로 나뉜다.데이터형[] 배열이름 = new 데이터형[ ]데이터형 배열이름 [] = new 데이터형 [ ]int [] aa = new int[4] [ 기본형 배열 ]기본형 배열이란 primitive(int, double) 타입의 변수를 여러개 선언할 필요가 있을 때 사용한다. [ 참조형 배열 ]참조형 배열이란 배열의 타입이 기본형이 아닌 경우를 말한다.배열 변수가 참조하는 배열의 공간이 값을 저장하는 것이 아니라 값을 참조한다는것을 의미  1️⃣  배열 선언 및 생성배열에 대한 레퍼런스 변수 선언(=intArray) -1 배열 생성 - 배열의 저장 공간 할..
[ java ] String 클래스(문자열 분리, 비교)
·
JAVA
📌  String 클래스문자열을 표현하는 자바에서 가장 많이 사용하는 클래스불변 객체이며, 문자열 리터럴을 사용해서 객체 생성이 가능하기 때문에 new 를 이용하지 않고 인스턴스 만들 수 있다.String test = "hi";new 연산자를 이용하지 않고 인스턴스를 만들 수 있다.new 는 클래스를 메모리에 올릴때 사용된다.str은 메모리의 위치값이 저장sHello라는 인스턴스를 가지고 있는 것이 아니라 참조(가르키고있는)하는 것이다.String str = new String("hello");// str은 Hello라는 인스턴스를 가지고 있는 것이 아니라 참조(가르키고있는)하는 것이다. // str은 메모리의 위치값이 저장되어져 있는 것이다.  ⭐ 불변객체 참고https://dose-blog.tist..
[ java ] Comparator, Comparable 차이
·
JAVA
📌 Comparator, Comparable 사용이유primitive 타입(int, double 등)의 실수 변수는 부등호를 통해 두 변수를 비교할 수 있다.→ 기본 자료형이기 때문에 부등호로 쉽게 비교가 가능하다. ❓ 그렇다면 새로운 클래스 객체는 어떻게 비교할까→ comparator, comparable를 사용하여 객체를 비교한다. Comparable과 Comparator는 모두 인터페이스(interface)이다즉, Comparable 혹은 Comparator의 사용을 위해서는 인터페이스 내에 선언된 메소드를 반드시 구현해야한다. [ comparable 특징 ]자기 자신과 매개변수를 비교한다.Comparable은 lang패키지에 있기 때문에 import 를 해줄 필요가 없다.[ comparator ..
[ java ] Comparable, Comparator 와 정렬의 관계
·
JAVA
📌 자바의 정렬 ?Java에서의 정렬은 특별한 정의가 되어있지 않는 한 오름차순을 기준으로 한다.Arrays.sort(), Collections.sort() 모두 오름차순을 기준으로 정렬이 된다. ✏️  오름차순 정렬 방식int [] arr = {1, 3, 2 }위의 배열이 있을때 index 0(선행), index 1(후행)을 비교한다.index0 =1은 index 1 = 3 보다 작기 때문에 음수를 반환한다.1 - 3 = -2 이기 때문에 음수 반환index0과 index1의 자리는 바뀌지 않는다.Index1 = 3 은 index 2 = 2 보다 크기 때문에 양수를 반환한다.3 -2 = 1 이기 때문에 양수 반환index1과 index2의 자리가 바뀐다.결과는 {1, 2, 3} 오름차순으로 정렬된다...
[ java ] 조건문
·
JAVA
1️⃣  if문 설명( 조건문장 ) 안에 있는 문장이 참일때만 실행된다.public static void main(String[] args) { int x= 10; int y=20; if(x   ( 조건문장 ) 조건이 참이 아닐때 else 사용 int x= 10; int y= 20; if(x == y) { System.out.println("x와 y는 같다."); } else { System.out.println("x와 y는 다르다."); }  다른 조건을 추가할때 else if 사용 int x= 10; int y= 20; if(x == y) { System.out.println("x와 y는 같다."); } else if(x  2️⃣ Switch문(제어문)어떤 변수에 값에 따라서 문장을 실..
[ java ] 반복문
·
JAVA
📌 반복문어떠한 것을 반복적으로 사용하고 싶을 때 자바에서는 반복문으로 while, do while, for문을 제공한다.1️⃣ while문while문은 탈출 조건식이 false를 반환할때 while문을 종료하게 된다.while(조건문){ 실행문; }int i = 0;while (i   📌 while문 무한루프while(true){System.out.println("hello");}while(true)를 사용한다조건문을 사용하여 빠져나온다.ex) break;  2️⃣ do-while 문while문 과는 다르게 조건이 만족하지 않더라도 한번은 수행된다.do{ //반복할 문장들;}while()do안에 있는 문장이 실행while안에 있는 조건이 만족되어야 → do 문장이 실행된다.  📌 while..
[ java ] 클래스 변수, 인스턴스 변수, 지역변수
·
JAVA
클래스 변수, 인스턴스 변수, 지역변수public class variableTest { static int classVariable; //클래스변수 (static변수, 공유변수) int instanceVariable; //인스턴스변수 void method() { int localVariable; //지역변수 } }  인스턴스 변수(instance vairable)클래스 영역에 사용한다.클래스 객체(인스턴스)를 생성할 때 만들어진다생성된 객체(인스턴스)는 독립적인 저장공간을 가진다.객체 생성 시마다 매번 새로운 변수가 생성된다고 생각하면 된다.  클래스 변수(class variable)클래스 영역에 선언되며, static을 붙여서 사용한다.모든 객체(인스턴스)가 공통된 저장공간을 공유하게 된다.클래스가..
[ java ] 제네릭(generic)
·
JAVA
제네릭(Generic) 빌드에서 타입을 체크하여, 타입 안전성을 제공한다.List list = new ArrayList();list.add(10);list.add("abc");int sum = (int)list.get(0) + (int)list.get(1); // 1번 런타임 오류 List testList = new ArrayList();testList.add(10);testList.add("abc"); //2번 문법 오류 발생   📌 코드로 이해 하는 제네릭1번은 코드는 실행해야 오류가 발생한다2번 코드는 빌드 자체가 안된다→ 결론 : 제네릭 타입을 통해 타입을 강제하여 개발자의 실수를 방지할 수 있다. (타입에 맞지 않는 데이터 추가 시 문법 오류 발생의 확인으로 가능)