본문 바로가기

👩‍💻 BackEnd/☕️ 자바 [Java]33

[Java] 자바 8 버전 이상의 자바문법 : 스트림 API ✅ ** 해당 내용은 '이것이 취업을 위한 백엔드 개발이다' 책을 보며 개인공부 목적으로 정리한 내용입니다! ** 스트림 API 컬렉션에 추가된 메서드의 집합을 의미 컬렉션에 담긴 데이터를 처리하는 존재라는 것을 명심! forEach() : 컬렉션의 요소들을 하나씩 꺼내서 반복하므로 문법적으로 보면 반복문을 쉽게 대처할 수 있다. public class Lambda { public static void main(String[] args) { List list = new ArrayList(); list.add("public"); list.add("static"); list.add("void"); // for 문으로 List 를 순회할 수 있다. for (int i = 0; i < list.size(); i.. 2024. 2. 26.
[Java] 자바의 정석 : 참조변수의 형변환 참조변수의 형변환 : 사용할 수 있는 멤버의 갯수를 조절하는 것을 의미 : 조상 - 자손 관계의 참조변수는 서로 형변환 가능 참조변수 멤버의 개수를 줄이는 것은 안전 하지만 참조 변수의 개수를 늘리는 것은 위험, 따라서 형변환을 꼭 명시 해줘야 한다. package pkg2; public class Ex7_7 { public static void main(String[] args) { Car car; FireEngine fe = new FireEngine(); FireEngine fe2 = null; fe.water(); car = fe; // car.water(); // error Car 클래스에 멤버변수로 water 가 없음 fe2 = (FireEngine) car; // 자손 타입 2024. 2. 23.
[Java] 자바의 정석 : 다형성 다형성 : 여러가지 형태를 가질 수 있는 능력 : 조상타입 참조변수로 자손타입 객체를 다루는 것 package pkg2; public class Tv { boolean power; int channel; void power() { power = !power; } void channelUp() { ++channel; } void channelDown() { --channel; } } class SmartTv extends Tv { String text; void caption() { // 생략 } } 이렇게 클래스가 있으면 Tv tv = new SmartTv(); // 가능 SmartTv tv = new Tv(); // 불가능 SmartTv 가 더 많은 멤버를 갖는데 해당 타입으로 Tv 를 다루려고 하면 .. 2024. 2. 23.
[Java] 자바의 정석 : 접근제어자, 캡슐화 접근 제어자의 종류는 빠삭하게 알지만 그 활용이 잘 이해가 안간다. 접근 제어자의 종류 public : 접근 제한이 거의 없음. (default) : 같은 패키지 내에서 접근 가능. (접근 제어자 명시를 하지 않으면 default 접근 제어자) protected : 같은 패키지 내에서 그리고 상속받은 자손 클래스에서 접근이 가능. private : 같은 클래스 내에서만 접근이 가능. 학습 목표 : 오늘 예시를 통해서 조금 더 확실하게 익히고, 어떤 상황에서 접근 제어자를 활용할 수 있는지 알아보자. package pkg1; class MyParent { public int pub; protected int ptd; int dft; private int prt; public void printMembers.. 2024. 2. 23.
[자바의 정석] 12-7. Iterator 12-7. Iterator Iterator 또한 지네릭 클래스로 타입을 정해주면, 꺼낼 때 형변환을 따로 해주지 않아도 된다. 따라서 코드가 더욱 간결해진다! import java.util.ArrayList; import java.util.Iterator; public class GenericTest { public static void main(String[] args) { ArrayList list = new ArrayList(); // Tv 타입의 객체만 저장 가능 list.add(new Student("자바왕", 1, 1)); list.add(new Student("자바짱", 1, 2)); list.add(new Student("홍길동", 2, 1)); Iterator it = list.itera.. 2024. 1. 4.
[자바의 정석] 12-2 ~ 12-5. 타입변수, 대입, 지네릭스 용어, 지네릭스 타입과 다형성 12-2 타입 변수 클래스를 작성할 때, Object 타입 대신 타입변수(E)를 선언해서 사용. 12-3 타입 변수에 대입하기 객체를 생성 시, 타입변수(E) 대신 실제 타입(Tv)을 지정(대입) ArrayList tvList = new ArrayList(); 타입은 참조변수와 생성자에 넣어줘야 하며, 서로 타입이 일치해야한다. 타입변수 대신 실제 타입이 지정되면, 형변환 생략 가능 ArrayList tvList = new ArrayList(); tvList.add(new Tv()); Tv t = tvList.get(0); // 형변환 불필요 반환타입이 Tv 타입이니까 형변환을 해줄 필요가 없어졌다. 12-4 지네릭스 용어 class Box {} 대입된 타입 (매개변수화된 타입, parameterized.. 2024. 1. 4.