본문 바로가기
728x90
반응형

전체 글135

java의 문자열 포맷 : String.format() 과 System.out.printf() 서식문자 관련 문제를 풀다가, 다른 사람들이 해결한 방법을 찾던 중 System.out.println(String.format(format,args)); 형태의 코드를 보게 되었다. 이때까지 printf()로 풀고 있었는데 뭐가 다른가? 하고 궁금해서 찾아보게 되었는데, f3과 번역 콤보, 구글링으로 공부해 본 결과 변수를 정렬하여 출력할 수 있는 메소드로 printf()와 동일한 것 같다. (설명 주석으로 C의 printf()의 영향을 크게 받았다고 되어 있다.) 나는 예전에 c를 해본 적도 있고, java를 맨 처음 배웠을 때 서식문자를 사용해 출력하는 방법에 대해 printf()를 접해본 적이 있었는데 그 때 가르쳐주셨던 교수님께서 java의 printf()는 c언어 개발자의 접근성을 높이는 하나의.. 2020. 11. 25.
[JAVA]18일차 이때까지 우리가 배우면서 코드를 입력 했을 때, 잘못 코드를 짰거나 이상한 값을 입력한 경우 에러가 발생하면서 프로그램이 애초에 진행되지 않거나, 진행되다가도 잘못된 코드를 만나면 빨간 에러 문구가 출력되면서 프로그램이 종료되었다. 이처럼 자바 가상머신은 예외적인 상황을 처리할 때, 간단한 예외 정보를 출력하고 프로그램을 종료해버린다. 그런데 우리가 상용화된 어플을 쓸 때는 무언가를 잘못 입력할 경우 잘못 입력했다는 메시지만 떴지 어플은 종료되지 않는다. 왜 상용화된 어플은 값이 잘못 입력되었는데도 우리가 짜는 코드처럼 종료되지 않고 계속 실행을 유지했을까? 이것을 처리하는 것이 바로 오늘 배운 예외 처리이다. 0. 예외(Exception)와 오류(Error) 프로그램을 돌렸을 때 .. 2020. 6. 3.
DLL 이란? 1. DLL이란? DLL을 설명하기 전에 먼저 라이브러리(Library)라는 것이 있다. 라이브러리는 여러 프로그램에서 동시에 사용할 수 있는 코드와 데이터를 포함하는, 일종의 단편화된 프로그램이다. DLL은 다이나믹(Dynamic) 링크(Link) 라이브러리(Library)를 줄인 말이다. 라이브러리는 소프트웨어를 개발할 때 자주 쓰거나 기초적인 함수들을 중복개발하는 수고스러움을 피하기 위해, 표준화된 함수나 데이터 타입을 모아놓은 것이다. 이러한 라이브러리는 언제 메인 프로그램에 연결하느냐에 따라서 Static Link와 Dynamic Link로 나뉘며, DLL은 이 중 후자를 뜻한다. 스태틱 링크(Static Link = 정적 링크)는 컴파일 시점에 라이브러리가 링커에 의해 연결되어 실행 파일의 일.. 2020. 6. 2.
[JAVA]17일차 어제 수업에 이어서, 인터페이스와 비슷한 추상클래스를 배웠다. 먼저 예제를 연습하다가 발견 한 것들 0. Exception in thread "main" java.lang.ArrayStoreException 배열과 맞지 않는 데이터를 저장하려고 하면 이 에러가 발생 ㅡ 예를 들어 자료형이 맞지 않거나, 상속하는 클래스가 아닌 다른 객체를 저장하려고 하면 이 오류가 뜬다. 0-1. public String toString() 자바의 조상격 클래스인 Object의 함수는 오버라이딩 할 때 접근제어자 범위를 축소할 수 없다. Object 객체에서 접근 제어자를 public으로 지정해줬기때문에 (전체 공개를 원칙으로 하기때문에) 바꾸는 것을 허용하지 않는다. 1. 추상클래스 추상클래스는 일.. 2020. 6. 2.
[JAVA]16일차 0. 다형성을 왜 이용하는가? 조상클래스를 상속하는 여러 자식 클래스들은 기존의 조상클래스를 확장한다. 다형성을 이용하면 기존의 조상 클래스를 기준으로 하위 클래스들의 인스턴스를 더 효율적으로 사용할 수 있다. 다형성이나, 상속, 인터페이스, ... 등등 객체를 지향하는 언어 답게 자바는 팀 단위 프로젝트를 더 쉽게 만들어준다. 표준을 강제하여 팀에게 공통된 작업을 수행하게 하거나, 수시로 변화되는 고객의 요구에 응할 수 있도록 기존의 코드를 뒤엎지 않아도 유지 보수될 수 있게 하기 위해 우리는 자바에서 상속에서 비롯되는 다형성 등을 이용하는 것이다. 1. 상속 하지 못하도록 하고 싶으면? final의 또다른 사용 다른 클래스가 특정 클래스를 상속하지 못하게 한다거나, 특정 메소드를.. 2020. 6. 1.
[JAVA]15일차(2) instanceof 연산자 ...........ㅠ 아직 헷갈린당 package example; class GrandParent{ } class Parent extends GrandParent{ } class Child extends Parent{ } public class Test01 { public static void main(String[] args) { GrandParent gp = new GrandParent(); Parent pt = new Parent();//부모형 참조변수는 자식객체 바로 참조 가능 Child ch = new Child();//자식형 참조변수는 부모객체 바로 참조 불가 //1. 조상클래스가 자신의 클래스를 참조하고 있는 경우. System.out.println("GrandP.. 2020. 5. 31.
[JAVA]15일차 15일차에는 상속과, 상속으로 사용할 수 있는 다형성과 오버라이딩까지 배웠다. 1. 상속 상속은 상위클래스의 멤버(변수, 함수들)를 하위클래스가 물려받아서 사용할 수 있도록 하는 것이다. 상속 여부는 extends 키워드로 표현해준다. 또한, 자바에서는 단일 상속만 할 수 있다. 한번에 한 클래스만 상속할 수 있다는 뜻이다. class Parent{ int age; public void Print(){ System.out.println("부모 클래스"); } } class Child extends Parent{ String name; public void ChildPrint(){ System.out.println("자식 클래스"); } } Child 클래스는 Parent 클래스를 상.. 2020. 5. 31.
[JAVA]14일차 1. 배열 배열 내용은 이전 게시글에 이어서 설명을 추가하고자 한다. 2020/05/27 - [JAVA/JAVA_수강정리] - [JAVA]13일차 [JAVA]13일차 1.Scanner Scanner 클래스는 생성자로 전달되는 대상으로부터 데이터를 추출하는 기능을 제공한다. Scanner 클래스에 정의된 생성자 중 일부로 Scanne(File Source)/Scanner(StringSource)/Scanne.. turing0809.tistory.com 1차원 배열에 대해서는 13일차 수업 게시글에서 확인할 수 있다. 배열은 '자료형이 같은 둘 이상의 값'을 저장할 수 있는 연속된 메모리 공간을 의미한다고 하였다. 이 공간은 2차원으로도 선언할 수 있다! 2차원 배.. 2020. 5. 31.
[JAVA]13일차 1.Scanner Scanner 클래스는 생성자로 전달되는 대상으로부터 데이터를 추출하는 기능을 제공한다. Scanner 클래스에 정의된 생성자 중 일부로 Scanne(File Source)/Scanner(StringSource)/Scanner(InputStream Source) 등이 있는데, 그 중에서도 Scanner(InputStream source) 생성자를 통해 키보드로부터 입력을 받을 수도 있다. Scanner sc = new Scanner(System.in); → inputStream 생성자 1-1. Scanner 클래스 주요 메소드 Scanner 생성자로 대상을 전달하면, Scanner 클래스에 정의된 함수를 이용해 데이터를 추출할 수 있다. 그 일부는 다음과 같다. i.. 2020. 5. 27.
[JAVA]12일차 1. 오버로딩 (Overloading) 자바는 사용자가 호출하는 메소드를 찾을 때 두가지 정보를 참조한다 : 메소드 이름과, 메소드 매개변수. 이 중에서도 메소드 매개변수의 형태를 가지고 다른 메소드를 정의하는 것이 가능한데, 이것이 메소드 오버로딩이다. 오버로딩은 같은 함수반환형과 같은 함수명 일때, 매개변수의 타입과 갯수를 달리하여 함수를 정의하는 것을 말한다. 우리가 사용하는 생성자 역시 오버로딩 예시 중 하나이다. class AAA{ void simple(int p1, int p2) { } void simple(int p1, double p2) { } } public class Lecture12 { public static void main(String[] args) { AA.. 2020. 5. 26.
728x90
반응형