본문 바로가기
자바의 정석 - 객체지향 프로그래밍 2편 본 글은 1편에서부터 이어진다. 기본형 매개변수 코드로 바로 알아보겠다. public class Main { public static void main(String[] args) { Data d = new Data(); d.x = 10; System.out.println("main() : x = " + d.x); change(d.x); System.out.println("After change(d.x)"); System.out.println("main() : x = " + d.x); } static void change(int x) { x = 1000; System.out.println("change() : x = " + x); } } class Data { int x; } 해당 코드를 출력하면 어떻게 .. 2024. 2. 15.
자바의 정석 - 객체지향 프로그래밍 1편 글을 작성하기 앞서 자바의 정석 앞부분(자바 설치, 툴, 기본 문법 등)에 대해서는 다루지 않는다. 해당 부분은 다른 글을 참고하거나 스스로 공부하는 것을 권장한다. 객체지향 언어 예를 들자면 공장에서 과자를 만들어내는 것을 생각해보자. 하나의 기계에서 반죽을 만들고 모양 틀을 짜서 구워가지고 과자가 나오는 것은 없다. 어떤 기계는 반죽을 만들 것이고 어떤 기계는 모양 틀만 만들어줄 것이고 어떤 틀은 구워주기만 할 것이다. 이 3가지 행위 모두 하나의 객체라고 생각하면 된다. 그 객체들이 모여서 과자를 만들듯 자바 또한 그런 식으로 결과물을 만들어 준다. 객체지향의 특징 1. 코드의 재사용성이 높다. 2. 코드의 관리가 용이하다. 3. 신뢰성이 높은 프로그래밍을 가능하게 한다. 사실 이론적으로 보면 객체.. 2024. 2. 14.
형 변환 문자열을 숫자, 정수형을 실수형으로 변경시키는 등 이를 형변환이라고 하는데 자바에서는 어떻게 형 변환을 하는지 정리하려고 한다. String to Int public class Main { public static void main(String[] args) { String s = "12345"; Integer i = Integer.parseInt(s); Integer j = Integer.valueOf(s); System.out.println(s.getClass().getTypeName()); // java.lang.String System.out.println(i.getClass().getTypeName()); // java.lang.Integer System.out.println(j.getClass.. 2024. 2. 12.
리스트 배열의 경우 불변성으로 인해 동적으로 변하는 자료형에는 어울리지 않는다. 이런 단점을 보완하고자 리스트 클래스가 만들어졌고 이 경우에는 가변성으로 메모리가 허용하는 선까지 값을 계속 추가할 수 있다. 예제로 알아보기 https://school.programmers.co.kr/learn/courses/30/lessons/181920 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해당 문제를 배열과 리스트 두 가지 방법을 사용해 해결해보겠다. 배열 import java.util.*; class Solution { public static int[] solut.. 2024. 2. 12.
람다식의 스트림 함수 일반적으로 람다식은 익명 함수라고도 불린다. 일반적으로 함수는 이름이 존재하는데 람다식에는 존재하지 않는다. 코드로써 일반 함수와 람다식을 비교하면 다음과 같다. // 일반함수식 public int sum(int x, int y) { return x + y; } // 람다식 (x, y) -> x + y 일반 함수식에는 sum이라는 메소드명이 있지만 람다식에는 함수명이 존재하지 않는다. 자바에서는 스트림이 람다식으로 표현한다. 람다식에는 여러 스트림 함수가 존재하는데 통상 자주 사용되는 3가지 정도만 정리해보려고 한다. Filter 특정 조건을 만족하는 데이터만 걸러내는데 사용된다. import java.util.Arrays; public class Main { public static void main(.. 2024. 2. 12.
람다식 사용하기 람다식에 대한 정의는 다른 기술 블로그를 찾아보는 것을 권장한다. 람다식이 아닌 경우 class Solution { public int[] solution(int[] arr) { for (int i = 0; i = 50 && arr[i] % 2 == 0) { arr[i] = (int) arr[i] / 2; } else if (arr[i] < 50 && arr[i] % 2 != 0) { arr[i] = arr[i] * 2; } else { continue; } } return arr; } } 내부가 풀어써져 있어서 그런데 안의 코드를 약간 함수화하겠다. class Solution { public int[] solution(int[] arr) { i.. 2024. 2. 11.