자바입문 15

[JAVA] objects.equals() 정리

Objects.equals() : 객체의 주소를 비교 즉, 같은 값을 가진 객체라고 하더라도 따로 생성되었다면 False. //객체 비교시 !! public class Main{ public static void main(String args[]){ Name name1 = new Name("Ellen"); Name name2 = new Name("Ellen"); Name name3 = name1; System.out.println(name1.equals(name2)); // False System.out.println(name1.equals(name1)); // True } 다같은 이름으로 보이는데 False가 나옴 => 따로 생성되어 주소값이 다르기 때문! String aa = "cc"; String ..

[JAVA] 예외처리(Exception) / Throws

Exception 프로그램실행중 예기치 못한 사건을 예외라고 한다. 예외 상황을 미리 예측하고 처리할 수 있는데, 이렇게 하는 것을 예외 처리라고 한다. public class ExceptionExam { public static void main(String[] args) { int i = 10; int j = 5; int k = i / j; System.out.println(k); System.out.println(main 종료!!); } } 위 코드에서 j를 0으로 바꾸면 Excption 발생 j를 0으로 바꾸면 ArithmeticException이 발생하면서 프로그램이 종료된다. Java는 정수를 정수로 나눌때 0으로 나누면 안된다.0으로 나누면 오류가 발생하는 것입니다. 예외 처리 프로그래머는 ..

[JAVA] 내부클래스

클래스 안에 선언된 클래스 어느 위치에 선언하느냐에 따라서 4가지 형태가 있을 수 있다. 첫번째는 클래스 안에 인스턴스 변수, 즉 필드를 선언하는 위치에 선언되는 경우. 보통 중첩클래스 혹은 인스턴스 클래스라고 한다. 내부에 있는 Cal객체를 생성하기 위해서는, 밖에는 InnerExam1의 객체를 만든 후에 InnerExam1.Cal cal = t.new Cal();과 같은 방법으로 Cal객체를 생성한 후 사용한다. public class InnerExam1{ class Cal{ int value = 0; public void plus(){ value++; } } public static void main(String args[]){ InnerExam1 t = new InnerExam1(); InnerE..

[JAVA] 인터페이스

: 서로 관계가 없는 물체들이 상호 작용을 하기 위해서 사용하는 장치나 시스템 구현은 없고 어떤게 있다고 보여주는것 기능 구현하는 게 아니라 정의만 인터페이스는 자체적으로 타입의 역할은 가능하지만 객체 생성은 못함 동일한 인터페이스를 구현한다 = 클래스의 사용법이 동일! 클래스는 인터페이스를 구현해서 사용가능하고 인터페이스를 여러개 구현해서 사용도 가능 인터페이스 정의하는 방법 추상 메소드와 상수를 정의 할 수 있다. public interface TV{ public int MAX_VOLUME = 100; public int MIN_VOLUME = 0; public void turnOn(); public void turnOff(); public void changeVolume(int volume); pu..

[JAVA] 접근 제어자

클래스 {필드,메소드} - 캡슐화 : 관련된 내용을 모아서 가지고 있는 것 : 클래스 내에서 멤버의 접근을 제어하는 역할 한정자 클래스 내부 동일 패키지 하위 클래스 그외의 영역 public ⭕ ⭕ ⭕ ⭕ protect ⭕ ⭕ ⭕ ❌ default ⭕ ⭕ ❌ ❌ private ⭕ ❌ ❌ ❌ public : 어떤 클래스든 접근가능, 모든 접근을 허용, 가장 넓은 의미,전체공개 protected : 같은 패키지인 경우 접근 허용, 다른 패키지라도 상속을 받은 경우 접근허용 private : 자기 자신만 접근가능 default 접근지정자 : 아무것도 쓰지 않은 경우, 자기 자신과 같은 패키지 내에서 접근 허용 public > protected > default > private ❗필드 뿐아니라 메서드나 클래스..

[JAVA] 상속 / super / 부모생성자/ 클래스형변환

상속 : 부모가 가진 것을 자식에게 물려주는 것 노트북은 컴퓨터의 한 종류다. 컴퓨터(부모)-노트북(자식) 침대는 가구의 한 종류다. 혹은 침대는 가구다. 가구(부모)-침대(자식) => is a 관계 혹은 kind of 관계 라고 한다. Car 를 상속받은 Bus 를 class로 표현하는 방법 public class Car{ } public class Bus extends Car{ } public class 클래스명 extends 부모클래스명 자바는 클래스 이름 뒤에 extends 키워드를 적고 부모클래스 이름을 적게 되면 부모 클래스가 가지고 있는 것을 상속받을 수 있게 된다. 상속이란 부모가 가지고 있는 것을 자식이 물려받는 것을 말한다. 즉, 부모가 가지고 있는 것을 자식이 사용할 수 있게 된다. ..

[JAVA] 메소드 - 오버로딩

2022.08.08 - [JAVA] - [JAVA] 객체지향 / 클래스 Class /메쏘드 Method / Static [JAVA] 객체지향 / 클래스 Class /메쏘드 Method / Static 2022.06.20 - [준비운동/생활코딩 자바] - 6일차 패키지/클래스/인스턴스/상속 JAVA는 객체지향 프로그래밍이다. 객체 지향 프로그래밍 (OOP) 프로그램을 구성하는 요소는 객체이며 이것이 상호작 wearegolden.tistory.com 매개변수의 유형과 갯수가 다르게 하여 같은 이름의 메소드를 여러 개 가질 수 있게 하는 기술 매개변수의 수, 타입이 다른 경우 동일한 이름으로 메소드를 여러 개 정의할 수 있다 public class MyClass2 {//메소드 오버로딩 //메소드 오버로딩은 매..

[JAVA] 열거형 enum

enum 이름 {값1,값2;} 특정 값만 사용해야한다면 열거형을 사용하는 것이 좋다 JDK5 이전에는 상수를 열거형 대신 사용 상수를 이용하는 방법 public class EnumExam { public static final String MALE = "MALE"; public static final String FEMALE = "FEMALE"; public static void main(String[] args) { String gender1; gender1 = EnumExam.MALE; gender1 = EnumExam.FEMALE; } } 상수를 사용했때의 문제점 String으로 선언된 gender1 에는 MALE,FEMALE 둘 중 한가지 값을 갖기 원하는데, gender1의 type이 Strin..

[JAVA] 제어문 switch문

switch문 어떤 변수의 값에 따라서 문장을 실행할 수 있도록 하는 제어문! switch문에서 사용하는 키워드는 switch, case, default, break 이다. int value = 2; switch(value) {//만난 케이스부터 다 출력됨. case 1 : System.out.println("1"); break;//만난 케이스에서 바로 빠져나옴 case 2 : System.out.println("2"); break; case 3: System.out.println("3"); break; default : System.out.println("그 외 다른 숫자"); } //JDK7부터는 문자열타입 변수도 가능 String str= "A"; switch(str) { case "A": Syst..

[JAVA] 데이터타입 - 기본형 타입 / 참조형 타입

데이터 타입은 기본형 타입과 참조형 타입 두 가지로 나뉜다. 기본형타입 (클래스가 될 수 없음) 가장 기본이 되는 데이터 타입으로써 정수형, 실수형, 문자형, 불린형을 의미한다. 논리형 = 불린형 논리형은 크기가 1byte이고 true와 false 중에 한 가지 값을 가질 수 있다. 문자형 문자형은 char로 2byte크기를 가집니다. 문자는 작은따옴표를 이용하여 한 글자를 표현할 수 있다. 정수형 정수형은 정수를 표현하는 데이터 타입인데 표현할 수 있는 정수의 범위에 따라서 다양하게 제공된다. 정수형에서 가장 자주 사용하는 int는 4바이트이다. long형은 8byte크기를 가진다. int 보다 더 큰 범위의 정수를 표현하고 싶을때 사용한다. 실수형 실수형은 float과 double형이 있다. floa..

[JAVA] 변수(Variable)와 상수(Constant)

변수란? 값을 저장할 수 있는 메모리의 공간 변수의 선언 타입 변수이름; int count; ( 정수 값을 담을 수 있는 count라는 이름의 변수를 선언) double average; ( 실수 값을 담을 수 있는 average 라는 변수를 선언) 명명규칙. 변수의 이름을 정할 때 자바 언어에서 정해놓은 규칙 식별자 (identifier)는 클래스, 메소드, 변수 등 다양한 대상에 대해 이름이 붙여지는 경우. 그 이름을 뜻 함. 변수의 사용 변수명 = 값; int count; count = 10;//변수형에 10을 담음 count = 20;//변수형에 20을 담음. (윗줄 10은 사라짐) System.out.println(count);//20 double avg = 11.1; //실수 값 이므로 doub..

[JAVA] 객체지향 / 클래스 Class /메쏘드 Method / Static

2022.06.20 - [준비운동/생활코딩 자바] - 6일차 패키지/클래스/인스턴스/상속 JAVA는 객체지향 프로그래밍이다. 객체 지향 프로그래밍 (OOP) 프로그램을 구성하는 요소는 객체이며 이것이 상호작용 하도록 프로그래밍한다. 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. 위키 객체 지향 프로그래밍에서 클래스는 객체를 만들기 위한 확장 가능한 코드 템플릿이며, 상태(멤버 변수) 및 동작(멤버 함수 or 메서드) 구현에 대한 초기값을 제공한다. 많은 언어에서 클래스명은 클래스의 이름(템플릿 자체), 클래스의 기본 생성자(객체를 생성하는 서브 루틴)의 이름 ..

[JAVA] 조건문 - If문

참고블로그 조건문이란 ? 조건식의 연산 결과에 따라 블록 내부 문장의 실행 여부를 결정 할 수 있다. if문 =>if(조건식) { //조건식이 true일때 아래 실행문 동작, false면 미실행 실행문; 실행문; } 조건문 안에 조건식! public class Main { public static void main(String[] args) { int a = 6; if(a%2==0){// true System.out.println(a+"는 2의 배수");// 실행 if(a%3==0){// true System.out.println(a+"는 3의 배수");// 실행 } if(a%4==0){// false System.out.println(a+"는 4의 배수"); } } } } ①if문 : true->실행 ..

[JAVA] 연산자 / 연산자 우선순위

참고 블로그 + 프로그래머스 자바입문강의 연산자 사용법 설명 산술 연산자 ++ ++a, a++ 값을 하나 증가시킵니다.(전위, 후위 연산자) -- --a, a-- 값을 하나 감소시킵니다.(전위, 후위 연산자) + a + b 더하기 - a - b 빼기 * a * b 곱하기 / a / b 나누기 % a % b 나머지 관계 연산자 (비교연산자) *결과는 boolean > a > b a가 b보타 크면 true를 반환, 작거나 같으면 false를 반환 >= a >= b a가 b보다 크거나 같으면 true를 반환, 작으면 false를 반환 false System.out.println(b1 ^ b2);//서로다른값 -> true System.out.println(!b1);//논리부정 : 연산자의 논리값을 바꿈. fa..