본문 바로가기

java41

[JAVA] 람다식의 개념과 사용법 요즘 JDA로 디스코드 봇을 개발하고 있는데, 람다식이 많아서 이해하기 위해 공부를 했다. 일단 람다에 대해 알아보자. 람다란? 람다란 프로그래밍 언어에서 사용되는 개념으로 익명 함수를 지칭하는 용어이다. 현재 사용되는 람다의 근간은 수학이랑 기초 컴퓨터 과학 분야에서 쓰는 람다 대수라고 한다. 간단하게 말하면 수학에서 사용하는 함수를 단순하게 표현하는 방법이다. 익명함수 말 그대로 이름이 없는 함수이다. 익명 함수들은 공통으로 일급 객체라는 특징을 가지고 있다. - 일급 객체 : 일반적으로 다른 객체들에 적용 가능한 연산을 모두 지원하는 개체 이제 기본적인 람다의 개념을 알았으니 사용법을 알아보자. 역시 이번에도 말로 설명하는 것보단 먼저 보는 것이 좋을 것이다. public class Ramda { .. 2021. 10. 7.
[JAVA] Replace(문자열 치환) 에 대하여 저번에 프로그래머스 문제에서 사용한 replace에 대해 들고 왔다. 일단 rplace에 대해 간단히 소개하겠다. replace는 배열에서 자신이 바꾸자 하는 값을 골라서 바꿀 수 있는 함수이다. 종류로는 replace, replaceAll, replaceFirst 이렇게 3가지가 있다. 먼저 Replace이다. String string = new String("a b c d e f g"); string = string.replace(" ", ","); System.out.println(string); //결과 : a,b,c,d,e,f,g replace("기존 문자", "바꿀 문자") 방식으로 사용하며, 위 코드에서는 공백(띄어쓰기)을 , (반점)으로 바꾸었다. 자신이 바꾸고 싶은 문자로 문자열을 바꿔 .. 2021. 10. 5.
[JAVA] 프로그래머스 2018 KAKAO BLIND RECRUITMENT 1차 비밀지도 풀이 이번에 프로그래머스를 풀어봤는데 생각보다 재미가 있어서 가지고 와 보았다. 문제 내용은 https://programmers.co.kr/learn/courses/30/lessons/17681 여기 가서 확인해보면 된다. 일단 코드부터 공개하도록 하겠다. class Solution { public String[] solution(int n, int[] arr1, int[] arr2) { String[] answer = new String[n]; int[] ar1 = new int[n]; for (int i = 0; i < n; i++) { ar1[i] = arr1[i] | arr2[i]; } for(int i = 0; i < ar1.length; i++){ String binary = Integer.toBi.. 2021. 10. 1.
객체지향 프로그래밍 친구에게 객체지향이 뭐냐는 질문을 받아 대답하는도 중 내가 설명이 끊기는 일이 생겼다. 그래서 다시 한번 객체지향에 대해 알아보려 한다. 객체지향 프로그램은 로직을 상태와 행위로 이루어진 객체로 만드는 것이다. 쉽게 비유를 하자면 레고 블록을 조합해서 하나의 프로그램을 만드는 것이라 생각하면 된다. 다시 말하자면 객체지향 프로그래밍은 객체를 만드는 것이다. 그럼 전체적인 개념은 알아보았으니, 객체 지향 프로그래밍의 장, 단점 간단하게 알아보자. -장점 코드 재사용이 용이하다. 남이 만든 클래스를 가져와서 사용도 가능하고, 상속을 통해 확장 사용 가능. 유지보수가 쉬움 절차 지향에서는 일일이 찾아가며 수정해야 하지만, 객체 지향 프로그래밍에서는 수정해야 하는 부분의 클래스 내부에 변수 또는 메소드로 있기 .. 2021. 9. 16.
JAVA 메소드의 개념 일단 메소드가 뭔지를 알아야 개념을 이해할 테니 메소드를 알아보자. 타 언어에는 함수라는것이 존재한다. 근데 자바는 클래스 바깥에 함수를 만드는 것이 불가능하기 때문에 클래스 안에 함수가 존재한다. 이 함수를 자바에서는 "메소드" 라고 부른다. 이 메소드를 왜 쓰는가?라고 생각하는 사람도 있을 거라 생각한다. 왜 메소드를 쓰냐면 간단하게 똑같은 내용을 반복해서 쓰기 싫어서이다. 그냥 많이 쓰이는 부분을 한 번에 묶어서 더욱 효율적이게 처리하기 위해서이다. 이제 메소드의 구조를 살펴보자. 메소드의 구조는 여러 가지가 있는데, 보편적으로는 이런식이다. public 리턴자료형 메소드이름(입력자료형 입력변수,입력자료형 입력변수, ...){ ... return 리턴값; } 참고로 리턴 자료형이 void이면 리턴 .. 2021. 9. 14.