728x90

 

package method;

public class MethodTest2 {
	//구현
	public void disp() {
		System.out.println("non=static method");
	}
	
	public static void output() {
		System.out.println("static method");
	}

	
	public static void main(String[] args) {
		MethodTest2.output();
		//static라서 그냥 호출해도 출력이 가능
		MethodTest2 a = new MethodTest2();
		a.disp();
		//static이 아니라서 new연산자를 이용해 메모리에 객체를 생성후
		//.연산자로 출력
	}

static로 메소드를 만들면 메모리에 객체가 생성되어 있는 상태라서 클래스.메소드()로 호출이 가능하지만
static 없이 만들면 메모리에 객체가 생성되있지 않은 상태이기 때문에
new연산자로 객체를 생성후에 호출할 수 있다.

728x90

'JAVA' 카테고리의 다른 글

10진수를 2,8,16진수로 변환하는 법  (0) 2020.09.03
계산기(메소드, switch)  (0) 2020.09.03
[오류]Syntax error on token "class", @ expected  (0) 2020.08.31
클래스와 변수  (0) 2020.08.31
배열 연습문제03  (0) 2020.08.12
728x90

클래스에다가 ()를 넣어서 생기는 오류

package Ex;



class CarDemo() { //<-()를 없애면 해결된다.
	
}

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

}
728x90

'JAVA' 카테고리의 다른 글

계산기(메소드, switch)  (0) 2020.09.03
클래스 static  (0) 2020.09.03
클래스와 변수  (0) 2020.08.31
배열 연습문제03  (0) 2020.08.12
계산기 만들기02 (클래스, Scanner, 생성자)  (0) 2020.08.03
728x90

클래스는 설계도
클래스를 만듦으로서 캡슐화?가 가능하고
수정이 편리해지고 코드를 보기 편해진다. 

아래처럼 하나의 클래스에 메인클래스와 Car클래스를 선언해서 사용해도 되고
다른 페이지를 만들어 따로 분리해서 클래스를 만들고 불러와도 사용할 수 있다.

package Ex;

public class Car {
	int number;
	int speed;
	String color;
	String carName;
	
	public void speedUp() {
		System.out.println("속도를 올립니다.");
	}
	public void speedDown() {
		System.out.println("속도를 내립니다.");
	}
	
	
	public static void main(String[] args) {
		Car car1 = new Car(); 
		//메모리에 객체(인스턴스,instance)car1을 선언하는 코드
		car1.carName = "그랜저";
		car1.color = "검은색";
		car1.number = 6666;
		car1.speed = 0;
		
		Car car2 = new Car(); 
		//메모리에 객체(인스턴스,instance)car2을 선언하는 코드
		car2.carName = "소나타";
		car2.color = "노란색";
		car2.number = 7777;
		car2.speed = 0;
		
		System.out.println("car1 "+car1.carName+"가 출발합니다.");
		System.out.println("현재속도: "+car1.speed);
		car1.speedUp();
		car1.speedDown();
        
		System.out.println("======================");
        
		System.out.println("car2 "+car2.carName+"가 출발합니다.");
		System.out.println("현재속도: "+car2.speed);
		car1.speedUp();
		car1.speedDown();
		
	}

 

메인메소드 영역 밖으로 클래스를 Car 클래스를 만들고
메인메소드 안에 new연산자를 이용해 메모리에 인스턴스(객체)car1, car2를 선언한다.

car1.을 통해 변수들을 불러와 번호나 이름을 설정할 수 있고
메소드도 불러와 정해놓은 메소드를 실행시킬수 있다.

728x90
728x90

톰캣을 깔고 이클립스를 깔고 JSP를 실행해볼려는데 Run을 하니까 저런 오류가 뜬다.

다행히 https://blog.naver.com/stiff_soul/221750623998

 

이클립스 tomcat 에러 - Starting Tomcat v9.0 Server at localhost' has encountered a problem.

The server cannot be started because one or more of the ports are invalid. Open the server editor ...

blog.naver.com

이 블로그에 자세하게 정리가 되어 있었다.

톰켓에서 이런 오류가 뜬다면 포트 번호에 문제가 있을 것이라고 한다.

Show View > Other 에서 Server을 누르면 아래에 서버탭이 생긴다.

여기에 뜬 거를 더블클릭하자

노란 동그라미 친 부분이 -으로 되어있을 것이다. 톰캣을 설치할때 써있던 포트번호를 입력하고 
ctrl + s 를 눌러 저장하고 실행하면 

정상적으로 작동한다.

728x90
728x90

코드를 찾아주는 인텔리전스 기능이 안될때는

이클립스안에 Window- Preferences-Java- Editor- Advenced 를 들어가서

위에 칸에 상자들을 모두 체크하자.... 

 

728x90
728x90

월세구하기

package day09;

import java.util.Scanner;

public class ArTest01 {
	public static void main(String[] args) {
		
		int [] ho = new int[3];
		Scanner sc = new Scanner(System.in);
		int sum =0;
		double avg = 0.0;
		
		for(int i=0; i<ho.length; i++) {
			System.out.println((i+1)+"호 월세를 입력하세요(단위는 만원입니다.)");
			ho[i] = sc.nextInt();
			sum += ho[i];
		}
		System.out.println("1동 총 월세: " +sum+"만원");
		avg = (double)sum/ho.length;
		avg = Double.parseDouble(String.format("%2f", (double)sum/ho.length));
		System.out.println("평균 월세 : "+avg + "만원");
		
	}

}

매출액

package day09;

import java.util.Scanner;

public class ArShop {
	public static void main(String[] args) {
		int [] arIncome = new int[3];
		String [] arName = {"강남점", "코엑스점", "명동점"};
		Scanner sc = new Scanner(System.in);
		int sum =0;
		double avg = 0.0;
		//int i=0;
		
		for(int i=0; i<arIncome.length; i++) {
			System.out.println(arName[i]+"매출액을 입력하세요(단위:백만원)");
			arIncome[i] = sc.nextInt();
			sum += arIncome[i];
		}
		avg = Double.parseDouble(String.format("%.2f", (double)sum/arIncome.length));
		System.out.println("ZARA 총 매출액: "+sum+"백만원");
		System.out.println("평균매출액:"+avg+"만원");
	}
728x90
728x90

메소드부분

package Calculator;

public class Calculator {
	//전원on
	void powerOn() {
		System.out.println("전원을 켭니다.");
	}
	//더하기
	int plus(int x, int y) {
		int result = x + y;
		return result;
	}
	
	//빼기
	int mai(int x, int y) {
		int result = x - y;
		return result;
	}
	
	//곱하기
	int mul(int x, int y) {
		int result = x * y;
		return result;
	}
	//나누기
	double divide(int x, int y) {
		double result = (double)x / (double)y;
		return result;
	}
	//전원 off
	void powerOff() {
		System.out.println("전원을 종료합니다.");
	}
}

실행부 클래스

package Calculator;

public class myCalc {
	public static void main(String[] args) {
		Calculator myCalc = new Calculator();
		
		myCalc.powerOn();
		
		int result1 = myCalc.plus(5, 6);
		System.out.println("result1: "+ result1);
	
		int result2 = myCalc.mai(6, 2);
		System.out.println("result2: " +result2);
		
		int result3 = myCalc.mul(2, 3);
		System.out.println("result3: " + result3);
		
		double result4 = myCalc.divide(4, 2);
		System.out.println("result4: " + result4);
		
		myCalc.powerOff();
	}

}
728x90

'JAVA' 카테고리의 다른 글

클래스와 변수  (0) 2020.08.31
배열 연습문제03  (0) 2020.08.12
계산기 만들기(while, switch, if, Scanner)  (0) 2020.08.03
import , 다른 패키지의 클래스를 불러오는방법  (0) 2020.08.03
2차원배열  (0) 2020.08.02
728x90

사칙연산을 하는 계산기를 만들어보자.

package day07;

import java.util.Scanner;

public class Calc {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num1 =0, num2 =0;
		int choice = 0;
		String menuMsg = "1.계산하기\n2.나가기";
		String oper="";
		String result = "";
		
		
		while(true) {
			System.out.println(menuMsg);
			choice = sc.nextInt();
			if(choice == 2)break;
			if(choice != 1)continue;
			
			num1 = Integer.parseInt(sc.next());
			oper = sc.next();
			num2 = Integer.parseInt(sc.next());
			
			switch(oper) {
			case "+":
				result = ""+(num1+num2);
				break;
			case "-":
				result = ""+(num1-num2);
				break;
			case "*":
				result = ""+(num1*num2);
				break;
			case "/":
				if(num2 !=0 ) {
					result = ""+(num1/num2);
				}else {
					result = "0으로 나눌 수 없습니다.";
				}
				break;
				default:
					result="사칙연산 외의 연산자를 사용할 수 없습니다.";
			}
			System.out.println(result);
		}
		
	
	}

}

num1 = Integer.parseInt(sc.next());
oper = sc.next();
num2 = Integer.parseInt(sc.next());

여기서 next()를 사용한 이유는 next()는 공백을 구분점으로 받기 때문이다.
한줄에 1 + 1 를 입력하기 위해서 next()를 사용했다.


switch문안에 result = ""+(num1+num2);는 result는 String타입으로 선언했기 때문에
""+(~) 같은 모양을 통해 (num1+ num2) int형을 문자열로 형변환을 한 것이다. 
그래서 문자형인 result로 문제없이 나올 수 있다.

728x90

'JAVA' 카테고리의 다른 글

배열 연습문제03  (0) 2020.08.12
계산기 만들기02 (클래스, Scanner, 생성자)  (0) 2020.08.03
import , 다른 패키지의 클래스를 불러오는방법  (0) 2020.08.03
2차원배열  (0) 2020.08.02
switch 연습01  (0) 2020.07.31

+ Recent posts