삽질의 현장/- Java 10

[삽잡이::java] 공백따위 없애버려! trim()

코드를 구현하는 도중 문자열을 받아와서각각의 Case에 맞게 처리를 해야할 일이 있었습니다. Java 7 이상부터는 String 타입도 Switch문에서 사용이 가능하기에 사용했는데,이상하게도 원하는 Case로 접근이 불가능한 문제가 발생하였습니다. String 타입의 '삽잡이' 라는 문자열을 받아왔다고 가정해보겠습니다. 1234567891011switch( str ) { case "삽잡이": break; case "shovelMan": //... break; default: //... break;} 하지만, 정작 switch문은 default로 향하는 것 아니겠습니까...답답했습니다.혹시나해서 Java 버전까지 확인해봤습니다. 로그를 찍는데도'삽잡이 '가 정확히 나오는데...왜.. 왜...!!! 그런데..

[삽잡이::java] switch문은 정수뿐만 아니라 문자열도 올 수 있다.

한동안 더위와 그 외 여러 상황들로 방황을 하다가오랜만에 포스팅을 하게됬습니다...반성해라 삽잡이~~ 핑계일 뿐이야~~ 아무튼... 좀 지난 이야기이지만, Java7 이후로는 switch 문을 사용할 때'문자열'을 사용할 수 있게 되었습니다.1234567891011switch( str ) { case "삽잡이": //... break; case "shovelMan": //... break; default: //... break;}cs이처럼 String Type이 switch문의 괄호 항목 즉, Expression 에 들어올 수 있게 된 것입니다. 기존에 String형을 Switch문을 사용할 수 없었기 때문에if - else if - else 을 사용했었는데요,이제 깔끔하게 Switch문을 사용할 수 있..

[삽잡이::java] 나만의 스타일로! 오버라이딩(Overriding)

이리 저리, 요리 조리복잡한 생각들과 어떻게 해결할까 하는 고민들로머리가 뽀글뽀글해지기 시작하면...모든 사람들이 다들 그러실지는 모르겠으나삽잡이는 판단력이 흐려지는 듯합니다. 하하... 그래서 그런지 정신없이 코딩을 하다보면,중복되는 코드들이 너무도 많이 속출되고,내가 정녕 객체지향적인 코드를 작성하고 있나 싶을정도로스파게티 코드들을 만들고 있더군요... 그래서, 멀어져가는 정신을 끄댕겨잡고(?) 머리도 식히고 정리할겸! 오버라이딩에 대해서생각해보는 시간을 가지고자합니다. 부모로부터 불려받은 메서드를나만의 스타일로 재정의하는 작업을오버라이딩이라고 부릅니다. 예전에 면접보러가서 오버로딩과 오버라이딩에 대해서 바꿔서 말했던 추억이 생각나군요...하하하... 아무튼... 오버라이딩을 사용하는 이유는 뭘까요?..

[삽잡이::java] 자식이 생성될 때 부모의 생성자를 부른다.

참으로 훈훈한 부자지간(?)이군요!아버지가 자식에게 상속을 하는 모습입니다. 재산을 상속 받다.되물림받다. 세습하다. 계승하다. 등등등... 옛 것(?)으로 부터 이어서 받아오는 그 무언가! 자... 여러분은 어떻게 태어나셨습니까?!부모님에 의해 태어났죠? 이와 같은 아름다운 일들이프로그래밍 세계에서도 존재합니다. 부모되는 클래스로부터자식 된 클래스가 만들어질 수 있다 이겁니다. 우리가 부모님께 용돈 받아 쓰고,부모님의 집에 얹혀 살듯이 ...(부모님께 효도하세요) 자식된 클래스는 부모 클래스의 것들을 가져다 사용할 수 있습니다. 그런데, 이 자식된 클래스가 객체로 태어나게 될 때 반드시 부모를 호출하게 됩니다. 엄밀히 말하자면,자식 클래스가 생성될 때 부모 클래스의 생성자를 호출하게 되는 것입니다. (..

[삽잡이::java] Java코드로 날짜를 랜덤하게 생성해보자!

지난 시간에 이어 이번에는 날짜를 랜덤하게 가져오는 장난질을 해보려고합니다. 날짜를 랜덤으로 생성하고자삽질의 대가 무식한 삽잡이는 이와 같은 구상을 하였습니다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152public class RandomGame { private int iUserBirthMonth; private int iUserBirthDay; public int getUserBirthMonth() { return this.iUserBirthMonth; } public int getUserBirthDay() { return this.iUserBirthDay; } public ..

[삽잡이::java] 이름을 랜덤하게 생성해보자! 유니코드 랜덤 생성!

살면서 Random() 메서드를 사용하여 재미난 일들을 할 수 있습니다. 여러분이 만약... Random한 이름을 반복적으로 생성해야한다면 어떻게 해야할까? 중복성을 피한 이름...그 이름이 어느 이름이던 상관없이 오직 세글자!? 유니코드를 통해 만들 수 있는 한글은 이론적으로 160만 자 정도 나온다고 하는데, 현대 한글 낱자로 조합 가능한 글자 수는 ...놀라지 마십쇼... 무려 11172자라고 한다 우와!! [출처_ 나무위키(링크를 통해 확인하셔도 됩니다)] 아무튼....123456789101112131415161718192021public class RandomGame { private String sUserName; public String getSUserName() { return this.s..

[삽잡이::java] 지금은 몇일 몇시야? 여러가지로 쓸모있는 currentTimeMillis()

현재 시각은 어떻게 됩니까?1/1000 초의 값을 return 해주는 어마무시한 method를 혹시 아시나요? (출처_ 구글 ㅎㄷㄷ) 죄송하게 됬습니다.... System 클래스에 있는 이 메서드는 '현재 시각과 1970년 1월 1일 오전 0시' 와의 차이를 long 값으로 전달해줍니다. 이외에도 Data 클래스, Calendar 클래스에 있는 메서드들을 사용하기도합니다. 초로 나누기 위해서는 1000으로 나눠주면 되겠고,분으로 나누기 위해서는 (1000 * 60),시간으로 나누기 위해서는 (1000 * 60 * 60)을 해주면 되겠지요. 12345678910public static void main(String[] args) { private long lCurrentTime = System.curren..

[삽잡이::java]설치하자 JDK, 설정하자 환경설정

안녕하세요 삽잡이입니다. 오랜만에 찾아뵙는것 같네요.사실은 열심히 블로그에 글을 쓰긴 했지만... 굳이 공개할만한 글들은 아니어서... 하하... 이번 시간에는 JDK 설치 및 자바 환경 설정에 대한 글을 포스팅하고자합니다. 본인이 사용하고 있는 컴퓨터가 맛이 가버려서... 다른 컴퓨터를 가져왔는데...개발 환경이 구축되있지 않기에... 이왕 설치하는겸, 혹시나 설치를 하는데 어려움을 겪으실 분들을 위해 겸사겸사 포스팅을 합니다. 안녕하세요~! 낄낄 ㅋㅋ 오랜만의 포스팅이라 신이 나군요...할일이 산더미인데 이런... 아무튼 시작해보겠습니다. 우선, 자바 JDK를 설치할 수 있는 Oracle 사이트에 접속해서 JDK를 설치합니다.귀찮으시다면 바로 아래의 링크를 통해 들어가셔도 됩니다. http://www..

[Surro] :: Java 기초(2)

접근 제어자 public : 누구나 접근 가능하다 protected : 같은 패키지 내에 있거나 상속받은 경우에만 접근 가능하다. package-private : 아무런 접근 제어자를 적어주지 않을 때이며, package-private라고도 불린다. 같은 패키지 내에 있을 때만 접근 가능하다. private : 해당 클래스 내에서만 접근 가능하다. 자바에서 만든 코드를 관리하는 클래스 파일(.class)이 되는 타입의 종류 - 인터페이스와 abstract 클래스, 클래스의 차이 인터페이스 : 어떤 메소드가 존재해야 하는지에 대한 선언만 되어 있다. : 절대로 구현되어 있지 메소드가 있어서는 안 된다. : 인터페이스를 구현하는 클래스에서는 implements를 사용하여 선언한다. public interfa..

[Surro] :: Java 기초(1)

객체 지향 관련 용어 목록 - 클래스 : 사물의 단위, 상태(클래스, 인스턴스) 와 행위(메소드)를 갖는 자바의 기본 단위. public class Surro { int study; // 상태 public void Sing(int Song) { // 행위 .................. } } - 캡슐화 : 연관된 '상태'와 '행위'를 결정하는 기능을 묶어주는 것. > 캡슐화를 통해 클래스 밖에서 접근 가능한 대상을 제한하는 정보 은닉이 가능. > 하나의 객체를 위한 코드가, 다른 객체를 위한 코드와 무관하게 수행할 수 있는 모듈화가 가능. public class Surro { private int study; // private로 선언함으로써 정보 은닉 public void Sing(int Song)..