728x90
반응형

Java 30

[Java] printf에서 %n과 \n의 차이점

System.out.printf("%d%n", 123); System.out.printf("%d\n", 123); %n과 \n 모두 줄 바꿈을 표현하는데 사용됩니다. VSC에서 실행하는 경우 결과값에 이 차이점이 없어 보입니다. 하지만 이 둘은 플랫폼에 따라 차이점이 있을 수 있습니다. %n은 플랫폼에 따라서 줄바꿈을 처리하는 방식에 따라 다른 줄바꿈 문자를 출력합니다. 예를 들어, Windows 운영체제에서는 %n이 "\r\n"으로 처리되어 출력됩니다. 따라서, %n을 사용하면 어떤 운영체제에서든 일관성 있는 줄바꿈을 표현할 수 있습니다. *\r은 캐리지 리턴(Carriage Return)을 나타내는 이스케이프 시퀸스. 이전에 출력한 문자열의 맨 앞으로 커서를 이동시킨다. 예를 들어, System.ou..

[Java] VScode javax.swing 실행이 안될 때

https://code.visualstudio.com/docs/java/java-gui Develop Java GUI Applications in Visual Studio Code How to develop Java GUI Applications (JavaFX, AWT, Swing) in Visual Studio Code code.visualstudio.com extension for java package를 다운받았음에도 불구하고 javax.swing 패키지를 실행할 수 없을 때 다음 절차를 따라해보세요. 맥 유저라면 ⌘+⇧+P, 윈도우 유저라면 Ctrl + Shift + P를 눌러 Command Pallete를 엽니다. 여기에 Java:Help Center를 들어갑니다. 여기서 STUDENT 탭에 들..

[Java] Mac VsCode zsh: command not found: 에러

Java의 정석의 예제코드를 따라 공부하려고 하니 다음과 같은 에러가 나타났다. import java.util.*; public class ExpValidCheck { public static void main(String[] args){ if(args.length!=1){ System.out.println("Usage: java ExpValidCheck \"EXPRESSION\""); System.out.println("Example: java ExpValidCheck \"((2+3)*1)+3\""); System.exit(0); } Stack st = new Stack(); String expression = args[0]; try{ for(int i = 0; i < expression.length(..

[Java] AND와 OR의 연산자 우선순위

논리 연산자 중에서 AND를 의미하는 '&'와 '&&'가 OR를 의미하는 '|'와 '||'보다 우선순위가 높다. 이처럼 수식에 AND와 OR가 함께 사용되는 경우에는 괄호를 사용해서 우선순위를 명확히 하는 것이 좋다. x = 6; System.out.printf("x=%2d, x%%2==0 || x%%3==0 && x%%6!=0 =%b%n", x, x%2==0||x%3==0 && x%6!=0); System.out.printf("x=%2d, (x%%2==0 || x%%3==0) && x%%6!=0 = %b%n",x, (x%2==0||x%3==0)&& x%6!=0); 이 결과 &&의 우선순위가 ||보다 높기 때문에 x%2==0 || x%3==0 && x%6!=0 은 True || True && False ..

[Java] 프로그램 오류

컴파일 에러: 컴파일 시에 발생하는 에러 런타임 에러: 실행 시에 발생하는 에러 논리적 에러: 실행은 되지만, 의도와 다르게 동작하는 것 에러(error): 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 ex) 메모리 부족(OutOfMemoryError), 스택오버플로우(StackOverflowError) 예외(exception): 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 Exception클래스들: 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외 RuntimeException클래스들: 프로그래머의 실수로 발생하는 예외

[Java] 인터페이스(interface)

abstract class 클래스이름 implements 인터페이스이름 { // 인터페이스 일부 구현 } 인터페이스(interface) - 일종의 추상클래스. 하지만 추상클래스를 부분적으로 완성된 '미완성 설계도'이지만 인터페이스는 구현된 것이 아무 것도 없고 밑그림만 그려져 있는 '기본 설계도'라고 생각하면 됨. - 추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아서 추상클래스와 다르게 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. - 접근제어자로 public 또는 default를 사용할 수 있다. interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메서드이름 (매개변수목록); } - 일반적인..

[Java] 다형성(polymorphism)

다형성 - 여러 가지 형태를 가질 수 있는 능력 - Java에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 구현 즉, 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다. class Car{ int wheel; int location; void wheel(int a) = {wheel = a;} void forward() = {location++;} void backward() = {location--;} } class SuperCar extends Car{ boolean ceillingOpen; void Boost() {...} } 다음과 같이 기본적으로 생성된 인스턴스를 다루기 위해서, 인스턴스의 타입과 일치하는 타입의 참조변수를 사용하였다...

[Java] 제어자(modifier)

제어자(modifier) - 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. - 접근 제어자와 그 외의 제어자로 나눌 수 있다. * 접근 제어자: public, protected, default, private * 그 외: static, final, abstract, native, transient, synchronized, volatile, strictfp - 제어자는 클래스나 멈버변수, 메서드에 주로 사용되며, 하나의 대상에 대해 여러 제어자를 조합하여 사용할 수 있다. 단, 접근 제어자는 한 번에 하나만 선택해서 사용해야한다. static - 클래스의, 공통적인 - 클래스변수(static 멤버변수)는 하나의 변수를 모든 인스턴스가 공유하는 형태이므로 인스턴스에 관계없이..

[Java] 오버라이딩(overriding)

오버라이딩(overriding) - 조상 클래스로부터 상속받은 메서드 내용을 변경하는 것. - 오버라이딩은 메서드의 내용만을 새로 작성하는 것이므로 메서드의 선언부는 조상의 것과 완전히 일치해야 하므로 다음과 같은 조건을 충족해야 한다. * 자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와 1) 이름이 같아야 한다. 2) 매개변수가 같아야 한다. 3) 반환타입이 같아야 한다. 즉, 선언부가 서로 일치해야 한다는 것이다. (+) 접근 제어자(access modifier)와 예외(exception)는 제한된 조건 하에서만 다르게 변경할 수 있다. * 접근 제어자는 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다. => 접근 제어자의 접근범위는 public, protected, (defaul..

728x90
반응형