2020. 8. 18. 22:38ㆍJava/Java
자바는 객체지향 프로그래밍 몇 가지 특성을 가지고 있다.
자바의 특징
1.객체지향 언어의 4대 특징
추상화->캡슐화=>다형성->상속성
=>C++,C#
2.플랫폼에 독립적이다.
윈도우,리눅스,맥OS
=>운영체제에 상관없이 다 실행이 가능
윈도우 개발=>리눅스,맥OS (코드이식)
소스코드 변경없이 바로 사용
실행할때는 독립적이지 않다.(의존적이다.)
=>운영체제에 맞는 JDK를 설치해야 한다.
윈도우 =>윈도우 JDK=>실행
맥OS =>맥JDK
Linux =>리눅스 JDK
객체란?
현실세계에서 존재하는 모든 사물
(모든 것이 객체가 될 수 있다.=>자바에서는 class를 하나의 객체로 본다.)
자바의 클래스
- 자바의 클래스는 멤버변수와 메서드를 가지고 있다.
- 하나의 파일에 클래스를 한개이상 작성할 수 있다.
- 하나의 클래스는 파일명과 같아야한다.(class A =>A.java)
=> main 메소드가 있을경우 그 클래스가 파일명과 같아야 한다.
**핵심클래스를 찾아서 파일명을 부여한다.=>main()를 가진 클래스
**핵심클래스=>public class로 시작한 클래스를 찾아서 이름부여
**하나의 파일에 public class로 시작하는 클래스는 한개이상 작성불가
자바의 메서드
- 메서드는 클래스 내에서 작업을 처리해주도록 정의되어 있는 것이다.
- 크게 메서드는 반환이 없는 void형과 반환형 메서드가 있다.
void startEnginee() { //메서드의 기능->멤버변수의 값을 저장,조회,출력
sidong=true;
System.out.println("시동이 걸림!");
}
int getOil() { //메서드의 기능->값을 전달 => oil값을 전달해준다.
return oil
}
- 메서드에는 매개변수를 받아서 처리하는 메서드가 있다.
void speedDown(int speed) {
current_speed-=speed;//current_speed=current_speed-speed;
System.out.println(speed+"km 만큼속도가 감소됨!");
}
- 메서드를 작성하는 이유
=>단순하고 ,반복적인 문장이 많기 때문에 소스코드를 줄이기위해서 메서드를 작성한다.
****반복, 코드를 줄이기 위해서****
자동차를 추상화 한 클래스 Car.java
public class Car { //TV,Computer,Mouse,Beam~
//1.자동차의 특성(공통적인 특성)=>멤버변수(클래스 내부에 선언된 변수)를 통해서 저장(8자료형)
String name;//명사
int output;//배기량
int year;//년식
String color;//차의 색깔
//현재 상태
int current_speed;//차의 속도
boolean sidong=false; //시동유무
//2.기능=>메서드로 처리
//1) 시동걸기=>단순,반복
void startEnginee() { //메서드의 기능->멤버변수의 값을 저장,조회,출력
sidong=true;
System.out.println("시동이 걸림!");
}
//2) 속도 증가=>멤버변수의 값을 계산해서 저장=>매개변수 O, 반환값 X
void speedUp(int speed) {
current_speed+=speed;//current_speed=current_speed+speed;
System.out.println(speed+"km 만큼속도가 증가됨!");
}
//3) 속도 감소
void speedDown(int speed) {
current_speed-=speed;//current_speed=current_speed-speed;
System.out.println(speed+"km 만큼속도가 감소됨!");
}
//4) 주차기능=>단순,반복=>매개변수 X, 반환값 X
void stop() {
sidong=false;
current_speed=0;//현재 속도는 0
System.out.println("정상적으로 주차 완료됨!");
}
//5)차의 정보를 제공(=출력)=>단순,반복
void carInfoPrint() {
System.out.println("===차의 정보===");
System.out.println("차의 이름=>"+name);
System.out.println("차의 배기량=>"+output);
System.out.println("차의 색깔=>"+color);
System.out.println("차의 속도=>"+current_speed);
}
}
위 Car을 사용하는 CarHandling.java
public class CarHandling {
public static void main(String[] args) {
// TODO Auto-generated method stub
//1.객체(=자동차)생성=객체(저장할 대상자)를 저장할 수있는 공간을 만들어라
//형식) 설계도이름(=클래스이름) 객체명(=변수)=new 클래스명();
int age;//4byte 공간이 생성
//Car morning; 기억공간이 생성X(객체선언)
//Car morning,sm5; 객체로 나열가능
Car morning=new Car(); //Person hong=new Person();
System.out.println("morning=>"+morning);
//j200717.Car@15db9742 =>패키지명.클래스명@16진수(위치)
//서울시 강남구 대현빌딩 3층
//2)객체명.멤버변수=저장할값
morning.name="모닝";
morning.output=1000;
morning.color="blue";
morning.year=2020;
//3)운전=>시동걸기->메서드호출=>객체명.호출할 메서드명()
morning.startEnginee();
morning.speedUp(150);//speedUp메서드 호출하면서 150값을 전달
morning.speedDown(60);//150-60=90
//저장된 정보를 출력=>객체명.멤버변수
System.out.println("차이름=>"+morning.name);
System.out.println("차의 배기량=>"+morning.output);
System.out.println("차의 현재속도=>"+morning.current_speed);
//work Method=>main대신에 처리해줄 메서드 존재
System.out.println("==============");
morning.carInfoPrint();//데이터 조회
}
}
CarHandling.java를 실행하면 해당 파일에서 Car 클래스를 불러와 Car클래스의 메소드와 변수를 사용 가능하다.
'Java > Java' 카테고리의 다른 글
Java - 오버로딩 (0) | 2020.08.21 |
---|---|
Java - 캡슐화 (0) | 2020.08.19 |
Java - 형변환 (0) | 2020.08.18 |
Java - 연산자2(관계연산자, 논리연산자,대입연산자, 삼항연산자) (0) | 2020.08.18 |
Java - 산술, 증감 연산자 (0) | 2020.08.18 |