인텔리제이 one dark 색상별 기능 , 메소드 , 매개변수 , 백준 11720번, nextint() , next()
본문 바로가기

컴퓨터공부/알고리즘

인텔리제이 one dark 색상별 기능 , 메소드 , 매개변수 , 백준 11720번, nextint() , next()

by Life & study 2023. 9. 10.
반응형

인텔리제이 one dark 색상별 기능 , 메소드 , 매개변수 , 백준  11720번

인텔리제이 one dark 색상별 기능

 

파란색: 클래스 이름, 메소드 이름 등과 같은 사용자 정의 타입을 나타냅니다.
초록색: 주석을 나타냅니다.
보라색: 키워드(public, class, void 등)를 나타냅니다.
검정색: 일반 텍스트와 변수 이름 등을 나타냅니다.
빨간색: 오류나 문제가 있는 코드를 나타내며, 컴파일러 또는 Linter로부터의 오류 메시지에 대응됩니다.
회색: 비활성화된 또는 실행되지 않은 코드(예: 주석 처리된 코드)를 나타냅니다.
 


메서드
abstract method
constructor call
constructor declaration
inherited method
Method call
Method declaration
static imported method call
static method



매개변수
implicit anonymous class parameter
Lambda parameter
Reassigned parameter
Type parameter
매개변수
 
 

int , long은 100자리를 숫자를 받을수없다.

 
int , long은 100자리를 숫자를 받을수없다.


54321를 배열로 나눌려면
tocharArray로 하면 배열로 5,4,3,2,1로 나눌수있다.

char - > int로 바꿀려면 아스키 코드로 변환하면된다.

 

메소드의 기능

 
Java에서 여러 종류의 메서드와 생성자에 대해 설명하고 예제를 제공하겠습니다.

메서드(Method): 클래스 내부에 정의된 함수입니다. 객체의 동작을 나타냅니다.
java
public class MyClass {
    public void myMethod() {
        System.out.println("Hello, world!");
    }
}
 



추상 메서드(Abstract Method): 추상 클래스나 인터페이스에서 선언되며, 본체는 없고 서브클래스에서 오버라이딩하여 구현해야 합니다.
java
public abstract class MyAbstractClass {
    public abstract void myAbstractMethod();
}
 



생성자 호출(Constructor Call): 객체를 생성할 때 사용하는 특별한 메서드입니다.
java
public class MyClass {
    public MyClass() { // Constructor declaration
        System.out.println("Object created!");
    }

    public static void main(String[] args) {
        MyClass obj = new MyClass(); // Constructor call
    }
}
 

생성자 선언(Constructor Declaration): 클래스가 인스턴스화될 때 호출되는 특별한 메소드입니다.
java
public class MyClass {
    public MyClass() { // Constructor declaration
        System.out.println("Object created!");
    }
}



상속된 메서드(Inherited Method): 상위 클래스에서 상속받은 메서드입니다.
java
public class ParentClass {
   public void parentMethod(){
       System.out.println("This is a method from the parent class");
   }
}

public class ChildClass extends ParentClass{
  // Inherits parentMethod from ParentClass.
}

ChildClass child = new ChildClass();
child.parentMethod();  // Calls inherited method.


 
메서드 호출(Method Call): 이미 정의된 메소드를 실행하기 위해 사용합니다.
java
public class MyClass {

   public void sayHello(){
       System.out.println("Hello, World");
   }

   public static void main(String[] args) {

      MyClass obj = new MyClass();

      obj.sayHello();  // Method call

   }
}


메서드 선언(Method Declaration) : 새로운 메소드를 만들기 위해 사용합니다.
java
class Main{
  
  // This is a method declaration.
  static int addNumbers(int a, int b){
     return a + b;
  }

  public static void main( String args[] ) {       
     int sum = addNumbers(10,20);
     Syste m.out.print(sum); 
     
  } 

 
 
정적으로 가져온 메소드 호출 (Static Imported Method Call) : 다른 클래스의 정적 메소도르 가져와 직접 호출합니다.
java
import static java.lang.Math.sqrt;

class Main {
  public static void main(String[] args) {

    double result = sqrt(16);  // Static imported method call

    System.out.println(result);
  }
}


 
정적 메서드 (Static Method) : 객체를 생성하지 않고 클래스 이름으로 직접 호출할 수 있는 메소드입니다.
java
public class MyClass {

   public static void sayHello(){
       System.out.println("Hello, World");
   }

   public static void main(String[] args) {

      MyClass.sayHello();  // Static method call

   }
}
이들 각각은 서로 다른 상황과 요구 사항에 따라 사용됩니다. 코드를 구성하고 로직을 설계하는 데 있어 필수적인 요소들입니다.
 
 
 

매개변수 

 
Java에서 사용되는 여러 종류의 매개변수에 대해 설명하고 간단한 예제를 제공하겠습니다.

매개변수(Parameter): 메서드나 생성자에 전달되는 변수입니다.
java
public class Main {
    static void sayHello(String name) {  // 'name' is a parameter
        System.out.println("Hello, " + name);
    }

    public static void main(String[] args) {
        sayHello("John");
    }
}


암시적 익명 클래스 매개변수(Implicit Anonymous Class Parameter): 익명 클래스에서 부모 클래스의 메서드를 오버라이딩할 때 사용됩니다.
java
abstract class AbstractClass {
    abstract void printMessage(String message);
}

public class Main {
    public static void main(String[] args) {

        AbstractClass instance = new AbstractClass() {
            @Override
            void printMessage(String message) {  // 'message' is an implicit anonymous class parameter
                System.out.println(message);
            }
        };

        instance.printMessage("Hello, world!");
    }
}
 


람다 매개변수(Lambda Parameter): 람다 표현식 내부에서 사용되는 변수입니다.
java
import java.util.function.Consumer;

public class Main {

   public static void main(String[] args) {

      Consumer<String> consumer = (String message) -> {  // 'message' is a lambda parameter.
         System.out.println(message);
      };

      consumer.accept("Hello, World!");

   }

}



재할당된 매개변수(Reassigned Parameter): 메서드 내부에서 값이 변경된 매개변수입니다.
java
public class Main {

   static int addOne(int number){
      number = number + 1;  // The parameter 'number' is reassigned.
      return number;
   }

   public static void main(String[] args){
   
       int result = addOne(5); 
       System.out.println(result); 
   
   }

}



타입 매개변수(Type Parameter) : 제너릭을 정의할 때 사용되는 변수입니다.
java

class Box<T> {  
  private T t;         

  public void set(T t) {
     this.t = t;
  }

  public T get() {
     return t;
  }
}
 

Box<Integer> integerBox = new Box<Integer>();
integerBox.set(new Integer(10));

System.out.printf("Integer Value :%d\n", integerBox.get());

여기서 <T> 는 타입 파라미터로 어떠한 타입도 받을 수 있게 해줍니다.
 
 
 
백준  11720번
 
백준  11720번

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // 입력 처리

        String sNum = sc.next();
        char[] cNum = sNum.toCharArray();
        int sum = 0;
        for (int i = 0; i< cNum.length; i++){
            sum += cNum[i] - '0';
        }
        // 문제 해결 코드a
        System.out.println(sum);
        // 출력

    }
}

 
 
이 코드를 기능적으로 분석하고, 그에 따라 노드와 트리 형태로 나타내면 다음과 같습니다.

Root Node: Main 메서드
이 노드는 전체 프로그램의 시작점입니다.
Child Nodes of Main:
Scanner 객체 생성: 사용자로부터 입력을 받기 위한 Scanner 객체를 생성합니다.
입력 처리 노드: next() 메서드를 사용하여 문자열을 입력받습니다. 이 문자열은 숫자의 시퀀스를 나타냅니다.
문제 해결 코드 노드: 문자열을 char 배열로 변환하고, 각 char 값을 정수로 변환하여 합계를 계산합니다.
toCharArray(): 문자열을 char 배열로 변환하는 부분입니다.
Loop: char 배열의 각 요소에 대해 반복하며, 각 요소를 정수로 변환하고 합계에 추가합니다.
출력 노드: 최종 합계 값을 출력합니다.
 
 

for (int i = 0; i< cNum.length; i++){
sum += cNum[i] - '0';
}

 
해당 코드는 문자열로 받은 숫자들의 합을 구하는 역할을 합니다. 이해를 돕기 위해 코드의 흐름을 단계별로 설명하겠습니다.

문자열 sNum은 toCharArray() 메서드를 통해 char 배열 cNum으로 변환됩니다. 예를 들어, "123"이라는 문자열이 있다면, 이는 ['1', '2', '3']라는 char 배열로 변환됩니다.
for문은 0부터 시작하여 cNum 배열의 길이만큼 반복합니다.
각 반복에서, '0'을 빼주는 연산(cNum[i] - '0')을 통해 char 타입의 숫자를 int 타입으로 변환합니다.
여기서 주목할 점은 자바에서 문자(char)는 내부적으로 아스키 코드(ASCII code) 값으로 저장되며, '0''9'까지의 숫자 문자는 아스키 코드 값이 4857입니다.
따라서, 예를 들어 '3'(아스키 코드 51)에서 '0'(아스키 코드 48)을 빼면 실제 정수 값인 3이 됩니다.
이렇게 변환된 int 값들은 변수 sum에 누적되어 더해집니다.
최종적으로 for문이 모든 요소에 대해 실행된 후에는 sum 변수에 입력한 숫자들의 합계가 저장되어 있게 됩니다.
 
 

nextint() , next() 뜻

 

사용자입력


  • nextInt(): 이 메소드는 입력 스트림에서 다음 토큰을 int 형식으로 해석하고 그 값을 반환합니다. 즉, 사용자가 입력한 숫자를 int 형태로 읽어옵니다. 만약 다음 토큰이 int 형식으로 해석될 수 없거나 더 이상 읽을 수 있는 값이 없다면 InputMismatchException이 발생합니다.
문자열(String) 형식으로 해석하고 그 값을 반환
  • next(): 이 메소드는 입력 스트림에서 다음 토큰을 문자열(String) 형식으로 해석하고 그 값을 반환합니다. 기본적으로 공백(스페이스), 탭, 줄 바꿈 등은 구분자(delimiter)로 간주되어 해당 문자를 만나면 하나의 토큰이 완성된 것으로 판단하고 그 전까지의 문자열을 반환합니다.
   
   

 

반응형

댓글