본문 바로가기

언어 공부/Java8

[JAVA] Consumer 함수적 인터페이스 람다식을 알아봤기에, 이제 함수적 인터페이스에 대해 알아보자 한다. 오늘은 함수적 인터페이스들 중 Consumer라는 인터페이스에 대해 알아볼 것이다. Consumer Consumer는 매개변수 값은 받지만 리턴해주는 값은 없는 인터페이스이다. accept메소드를 제공하며 매개변수를 받아 소비하는 역할을 한다. 그리고 다양한 오버 로딩 지원은 덤 Consumer 예제 import java.util.function.Consumer; public class Consunmer { public static void main(String[] args) { Consumer con = (a) -> System.out.println(a); con.accept("Hello world"); con.accept("Java".. 2021. 10. 13.
[JAVA]추상클래스, 추상매소드 추상 메소드란? 추상 메소드에 대해 알아보기 전에 추상화를 먼저 알아보자 추상화란 클래스 간의 공통점을 찾아내서 공통의 부모로 묶는 작업이다. 추상 메소드는 여러 객체에 공통되는 부분을 부모 클래스에 선언(구현도 가능)하고 자식 클래스에서 특징을 구현한다. 추상 메소드를 사용하는 이유 우리가 개발 또는 유지보수를 하다 보면 같은 부모를 두 번 정의한 부분이 있을 것이다. 그 부분을 간략하게 줄일 수 있다. 그리고 가끔가다가 재구현을 하려 했는데 안 할 때가 있는데 그때 재 구현하라고 알려준다. 추상 클래스의 장점 이제 추상 클래스의 장점에 대해 알아보자. 1. 부모 클래스에서 공통부분을 구현하면 자식 클래스에서 상속받아 구체화하기 편하다. 2. 자식 클래스에서 추상 메서드를 반드시 구현하도록 강요한다. .. 2021. 10. 8.
[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.
객체지향 프로그래밍 친구에게 객체지향이 뭐냐는 질문을 받아 대답하는도 중 내가 설명이 끊기는 일이 생겼다. 그래서 다시 한번 객체지향에 대해 알아보려 한다. 객체지향 프로그램은 로직을 상태와 행위로 이루어진 객체로 만드는 것이다. 쉽게 비유를 하자면 레고 블록을 조합해서 하나의 프로그램을 만드는 것이라 생각하면 된다. 다시 말하자면 객체지향 프로그래밍은 객체를 만드는 것이다. 그럼 전체적인 개념은 알아보았으니, 객체 지향 프로그래밍의 장, 단점 간단하게 알아보자. -장점 코드 재사용이 용이하다. 남이 만든 클래스를 가져와서 사용도 가능하고, 상속을 통해 확장 사용 가능. 유지보수가 쉬움 절차 지향에서는 일일이 찾아가며 수정해야 하지만, 객체 지향 프로그래밍에서는 수정해야 하는 부분의 클래스 내부에 변수 또는 메소드로 있기 .. 2021. 9. 16.