기록해! 정리해!

자바 - 이론 , 출력 , 연산 본문

JAVA

자바 - 이론 , 출력 , 연산

zsuling 2022. 7. 1. 18:03

07/01

 

 고급언어(사람이 이해할 수 있음) : C언어, JAVA 
 저급언어(기계가 이해할 수 있음) : 기계어, 어셈블리어

 

  컴파일 언어(기계언어로 번역이 됨 ex. jsp) : 소스 a.java --> 컴파일 언어 a.class --> 실행파일 a.exe
  인터프리터 언어 : 원시코드를 바로 실행하는 언어 (ex. php)

 

1.이식성이 높다

2.객체지향 언어다. (클래스 지향 언어)

 

함수 ==  메소드

: 자바에서는 메소드라고 부름

 

3. 메모리를 자동으로 관리한다

4.다양한 애프리케이션을 개발할 수 있다

 

º 단어

 

package test;
//public : 접근제어자 
public class HelloWorld {
          // static : 정적메소드, 메모리에 올려주는 메소드
      // void : 리턴형 (리턴값이 없다)
      // String : 문자열 ,  String[] : 배열
// main(String[] args) = 메소드 (메소드이름:main / String[] :형 /  arg:매개변수)
// 메소드 앞과 매개변수 앞은 무조건 '형'
public static void main(String[] args) {



System.out.println("환영합니다.");


}

}

 

º클래스

 

package test;

public class JavaTest {
  //좋은 프로그램이란? 결합도는 낮고, 응집도는 높은 프로그램
  //클래스 안에 사용할 수 있는 3가지
//1. 필드 (= 변수)
      int k =0; // 소문자로 시작되는 기본형 
      char c = 'a';
      float f= 1.5f;
      
      String str=""; //str = 필드 또는 변수 , String = 변수의 형, 대문자로 시작하고 기본형이 아니다. 확장형임
      
//2. 생성자 
      public JavaTest() {
       //1)클래스명과 동일
       //2)리턴형이 없다
        //3)초기화를 하기 위한 값이 위치한다.
       System.out.println("생성자");
      }
      
//3. 메소드 
  public void JavaTest() {
  //1)기본적으로 소문자로 시작한다
  //2)리턴형이 필요하다. void 또는 형 
  //3)명령어들의 집합
  }
  // 명령문은 생성자나 메소드 안에서 사용할 수 있음
  // 재사용하기 위해서 메소드, 클래스를 만드는 것임   
}

 

º  메소드

 

package test;

public class JavaTest {

  public void JavaTest() {
  }
 //매개변수가 1개 있는 메소드
  public void JavaTest(String str) {

  }
//매개변수가 2개 있는 메소드
  public void JavaTest(String str1, String str2 ) {

  }
   //매개변수의 형이 달라서 다른 것임   
  public void JavaTest(String str3, int str4 ) {

  }
  //위의 메소드와 다른 메소드임    
       public void JavaTest(int str4, String str3 ) {

  }
  }

 

º 형

package test;

public class HelloWorld {

public static void main(String[] args) {
 JavaTest j =new JavaTest(); 
 /* new = 자기자신이 형이 됨 (형은 javaTest가 됨) 
      ㄴ>(class를 사용하고싶을 때 사용) 

        ㄴ>객체를 형성하기 위해서 사용
   */
  // 즉 ! new JavaTest를 J로 쓸 수 있게 됨

 

º 실습1

두개 다 메소드있는 클래스로 만들면 독립적이게 됨

 

- 1) 메소드 있는 클래스 

package test002;

public class HelloWorld {
 
public static void main(String [] args) {
new testPrint();
}
}

- 2) 메소드 없는 클래스

package test002;

public class testPrint {

   int k = 1;
   public testPrint() {
   System.out.println("testPrint 생성자 확인");
   }
  private void testPrint() {
   System.out.println("testPrint 메소드 확인");
   }
}

 

º 실습2

1) package test002;

public class HelloWorld {
 
public static void main(String [] args) {
new testPrint("우리");  --우리 = 값
}
}

 

2) package test002;

public class testPrint {

   int k = 1;
   public testPrint() {
   System.out.println("testPrint 생성자 확인");
   }
  private void testPrint() {
   System.out.println("testPrint 메소드 확인");
   }
   public testPrint(String str) {
   System.out.println(str+"testPrint 생성자 확인");
   }
}

º 실습3

package test002;

public class HelloWorld {
 
public static void main(String [] args) {
testPrint p = new testPrint("우리");
        p. --하면 불러올 수 있는 것이 보이는데 private은 불러 올 수 없음
}
}

 

private : 자기 클래스 안에서만 불러오기가 가능하다

 

º 실습4

1) package test002;

public class testPrint {

  String print1004(){
  
return "우리";
  
  }
}

-- print1004를 불러오면 호출한 곳에 "우리"가 return 된다

 

2) package test002;

public class HelloWorld {
 
public static void main (String [] args) {
  testPrint P new testPrint ();
   String t = P.print1004(); --변수 ;  "우리"는 문자
   System.out.println(t);
}
}

 

º 실습5 (강호동+형)

1) package test002;

public class HelloWorld {
 
public static void main (String [] args) {
  testPrint P = new testPrint();
  String t = P.print1004("강호동");
  System.out.println(t);
}
}

 

2)package test002;

public class testPrint {

  String print1004(String str){
  
return str + ""; 
  
  }
}

º 실습5 (형으로 끝나는 말 만들기)

package test002;

public class HelloWorld {
 
public static void main (String [] args) {
  testPrint P = new testPrint();
  String t = P.print1004(args[0]);
  System.out.println(t);
}
}

 

배열넣기

결과

-- 사람(외부)이 머신에 넣어서 결과 도출

 

-- 자바프로그램은 외부에서 값을 넣으려하면 코드를 다 뜯어서 고쳐야하는데 (삼성배터리 쓰려면 다 고쳐야함 ; 기업)

   스프링에서는 자동으로 됨 (현대차는 니네가 주인공이냐? 하면서 이 틀에 맞게끔 들어오라함 ;전자정부프레임워크)

 

º 연산하기 (SUM)

1) package test002;

public class Operator {
  int sum (int i1, int i2){

  return i1 + i2;  
  }
}

2)package test002;

public class HelloWorld {
 
public static void main (String [] args) {
 
Operator t = new Operator();
int r=t.sum(10, 20);
System.out.println("연산결과:" + r);
 }
}

º 다른 방법으로 연산 나타내기

1) package test002;

public class HelloWorld {

public static void main (String [] args) {

Operator t = new Operator();
    t.sum(10, 20);

 }
}

2) package test002;

public class Operator {
  void sum(int i1, int i2){
  int i = i1 + i2 ;
System.out.println("연산결과 :" + i );
  }
}
 

º 1~5 출력

1)package test002;

public class HelloWorld {
 
public static void main (String [] args) {
 
Operator t= new Operator();
t.forTest();
 
 }
}

2)

package test002;

public class Operator {
  
void forTest( ){

for(int i =1; i <= 5; i++){
System.out.println("출력" + i);
}

}
  }

º 3~7  출력

1) 

package test002;

public class HelloWorld {
 
public static void main (String [] args) {
 
Operator t= new Operator();
t.forTest(3, 7);
 
 }
}

2)

package test002;

public class Operator {

void forTest(int k, int j){

for(int i=k ; i <= j ; i++){
System.out.println("출력" + i);
}

}
  }

º 곱하기 출력

1) package test002;

public class HelloWorld {
 
public static void main (String [] args) {
 
Operator t= new Operator();


int x = t.Test(2, 5);
System.out.println(x);
}
}

2)

package test002;

public class Operator {
  
int Test(int k, int j) {
    int r = k * j;
return r;

}
  }



º 두 수의 평균 구하기 (실수)

1) package test002;

public class HelloWorld {
 
public static void main (String [] args) {
 
Operator t= new Operator();

float x = t.Test(2, 5);
System.out.println("결과값 :" + x);
}
}

2)

package test002;

public class Operator {

float Test(float k, float j) {
    float r = (k + j)/2f ;
return r;

}
  }

º 세 수의 평균 구해서 반올림하기

1)

package test002;

public class Operator {

float Test(float k, float j, float y ) {
    float r = (k + j + y)/3f ;
return r;

}
  }

2) 

package test002;

public class HelloWorld {
 
public static void main (String [] args) {
 
Operator t= new Operator();

float x = t.Test(2, 5, 7);
System.out.println("결과값 :" + Math.round(x*10)/10.0);
}
}

 

Comments