상속
정의 1 -부모에 생성자가 없는경우
<public,private> 자식클래스 extends 부모클래스
{
}
정의 2 - 부모에 생성자가 있는 경우
자식클래스는 생성자가 존재해야하며
<public,private> 자식클래스()
{
super(매개변수); -->부모클래스의 생성자를 명시해준다. 부모클래스의 생성자를 초기화 하기 위함이다.
}
예제
부모
자식
메인
정의 1 -부모에 생성자가 없는경우
<public,private> 자식클래스 extends 부모클래스
{
}
정의 2 - 부모에 생성자가 있는 경우
자식클래스는 생성자가 존재해야하며
<public,private> 자식클래스()
{
super(매개변수); -->부모클래스의 생성자를 명시해준다. 부모클래스의 생성자를 초기화 하기 위함이다.
}
예제
부모
자식
메인
class 의 정의에 대한 내용은 c++에서 설명하였다.
java에서 class 사용방법은 다음과 같다.
정의
-일단 클래스 파일을 생성하여 준다.
-class 를 정의하여 준다.
이때 c++와 다른점은 헤더파일과 cpp파일을 함께 둔다.
그리고 함수를 정의할때 c++의 경우
public:
~
~
~
이러한 방식으로 만들어주었지만 java의 경우 모든 경우에 class
-변수
private <클래스 변수>;
-함수
<public,private,protect> <return type> <함수명> (매개변수)
{
}
-생성자
c++와 비슷하다.return타입은 적어주지 않는다.
<public,private,protect> <class명> (매개변수)
{
맴버변수 = 매개변수;
}
예제
메인
class
class 의 정의에 대한 내용은 c++에서 설명하였다.
java에서 class 사용방법은 다음과 같다.
정의
-일단 클래스 파일을 생성하여 준다.
-class 를 정의하여 준다.
이때 c++와 다른점은 헤더파일과 cpp파일을 함께 둔다.
그리고 함수를 정의할때 c++의 경우
public:
~
~
~
이러한 방식으로 만들어주었지만 java의 경우 모든 경우에 class
-변수
private <클래스 변수>;
-함수
<public,private,protect> <return type> <함수명> (매개변수)
{
}
-생성자
c++와 비슷하다.return타입은 적어주지 않는다.
<public,private,protect> <class명> (매개변수)
{
맴버변수 = 매개변수;
}
예제
메인
class
배열
데이터를 여러개 담을 수 있는 공간이다.
참조형 변수이다.
참조형 변수의 의미는 변수가 데이터를 저장하는 것이 아니라 데이터가 지정된곳을 가리키는 것이다.
즉 실질적으로 저장하는 공간이 따로 있는 것이다.
c언어에서의 배열 선언은
int arr[10] ---이러한 방식으로 해준다.
하지만 java의 경우
int[] arr=new int[5] ---이러한 방식으로 해준다.
이렇게 되면 int[5] 공간이 생성되고 arr이 이를 가리키게 된다.
이때 새로생긴 공간 int[5]에는 쓰레기값이 아닌 null값으로 초기화 된다.
null의 경우 c언어는 0이라는 값을 갖지만 java는 그냥 텅빈 값이다.
만약 선언과 동시에 초기화를 하기 위해선
int[] arr=new int[]{1,2,3,4,5}
이러한 방식으로 해준다.
c언어보다 java의 배열형이 우수한점은 java의 배열형은 참조형 변수이기 때문에 그냥 사용되는
변수처럼 한 변수가 여러 데이터를 가리켜 사용할 수 있다.
예제
정의
switch(조건)
{
case <조건1>:
<조건이 참일때 시행할 것>
break;
case <조건2>:
<조건이 참일때 시행할 것>
break;
case <조건3>:
<조건이 참일때 시행할 것>
break;
...
default :
<조건으로 원하는값을 넣어주지 않을때 시행할 것>
}
예제
정의
if(<조건>)
{
조건이 참일때 조건
}
else
{
조건이 참이아닐때 조건
}
예제
package day3;
import java.util.Scanner;
//문제: 더하기를 계속한다. 맞출때 어려운문제면 20점을 주고 쉬운문제면 10점을 준다.
//틀리면 총점수를 주고 끝낸다.
public class Test01 {
public static void main(String[] args) {
System.out.println("덧셈 계산 게임");
int score=0;
int count=0;
while(count<5)
{
Scanner scan=new Scanner(System.in);
int num1=(int)(Math.random()*100);
int num2=(int)(Math.random()*100);
System.out.printf("\n%d+%d=",num1,num2);
int num3=num1+num2;
int answer=scan.nextInt();
if(answer==num3)
{
System.out.printf("\ntrue+30");
score+=30;
count++;
}
else
{
System.out.printf("\nwrong-10");
score-=10;
count++;
}
}
System.out.printf("\nyour score is %d",score);
}
}
정석
for(int i=0;i<<조건>;i++)-->이러한 방식이다.
예제
for(int i=0;i<5;i++)
{
Scanner scan=new Scanner(System.in);
int num1=(int)(Math.random()*100);
int num2=(int)(Math.random()*100);
System.out.printf("\n%d+%d=",num1,num2);
int num3=num1+num2;
int answer=scan.nextInt();
if(answer==num3)
{
System.out.printf("\ntrue+30");
score+=30;
}
else
{
System.out.printf("\nwrong-10");
score-=10;
}
}
System.out.printf("\nyour score is %d",score);
}
}
즉 for 과 while은 c 와 동일하다.
차이는 개행이다.
println은 알아서 한칸을 띄어주고 printf는 한칸을 띄워주지 않는다.
printf는 서식문자를 허용한다.
이둘은 서식문자를 허용한다.
%d -부호 있는 10진수 정수
%o - 부호 없는 8진수 정수
%x - 부호 없는 16진수 정수
%f - 부호 있는 10진수 실수
%e - e 표기법 기반의 실수
%g - 값에 따라 %e 또는 %i 선택
%s - 문자열
%c - 문자
입력받은 스캐너 객체의 string 변환은 scan.next() 꼴이다. 자바는 class 변수를 만들어 줄때 new를 이용하여 객체를 대입한다.
java.util->이는 패키지라 일컫는다. import 라는 명령어를 통하여 가져온다.
배열 (0) | 2018.01.05 |
---|---|
switch,if,while,for (0) | 2018.01.04 |
자료형 (0) | 2018.01.04 |
자바-eclipse tutorial (0) | 2018.01.04 |
eclipse_java연동 (0) | 2018.01.04 |
자료형
자료형은 공간의 형식을 지정하여 준다.
그렇다면 왜 자료형을 필요로 할까?
컴퓨터는 기계어로 010101만 기억을 한다.
하지만 우리는 정수 실수 등을 사용한다
예를들어 3비트에서 001을 1이라 하면 100은 –1 로 한다.(보수관계). 이로인해 int가 갖을수 있는 정수의 최대값에서 값이 더 더해질시 음수값이 나오게 된다.
이렇게 함으로써 –4~3을 나타낼 수 있다. 이런 약속을 자료형을 통하여 해준다.
또한 각각의 데이터 크기를 다르게 함으로써 때에 따라 효율적으로 사용 가능케 한다.(메모리절약)
정수
int – 4byte
long –8
short-2
실수
float-4(소수점포함 7자리까지 제대로 표시가능)
double-8(소수점포함 15자리까지 제대로 표시가능)
문자
char-2byte
원래 char는 1바이트 였지만 세계의 모든 언어를 사용하기 위하여 2바이트로 늘었다.
이때 1바이트 짜리는 아스키코드. 2바이트짜리는 유니코드라 한다.
유니코드는 아스키코드의 연장선이다.
배열
string
참조형 객체이다. 다른 자료형들은 저장공간을 할당받고 그곳에 데이터를 담는다. 하지만 참조형 객체의 경우는 변수선언을 할 시 문자열은 문자열대로 저장공간을 할당받고 변수는 이를 저장이 아닌 가리키는 형식으로 사용된다.
연산
+,-,*,/,% 가 있다. %는 정수만 가능하다.(int,float,double에 상관없이 정수이면됨. ex)4.0 x 3,7 x)
실수 대입
float a ;
a=5.3;
System.out.println("let's study java"+a);
이렇게하면 오류가 발생한다
이뉴는 그냥 실수를 대입시 double 형으로 되기 떄문에
a=(float)5.3 이런식으로 실수를 float형으로 지정해준후 대입하여야한다.
(a=5.3f도 가능)-->cast연산이라 불린다.
하지만
double a ;
a=5.3f;
System.out.println("let's study java"+a);
이런식으로 낮은 영역->큰영역 으로 가는 것은 문제가 되지않는다.
문자형
문자는 항상 외따운표 ‘’ 안에 적어준다.
이를 인트형으로 출력시 유니코드의 넘버를 알 수 있다.
char lee= '이';
System.out.println((int)lee);
배열 (0) | 2018.01.05 |
---|---|
switch,if,while,for (0) | 2018.01.04 |
입력과 출력 (0) | 2018.01.04 |
자바-eclipse tutorial (0) | 2018.01.04 |
eclipse_java연동 (0) | 2018.01.04 |
1.이클립스에 들어간다.
2.자바프로젝트를 생성하여주자.
그리고 finish
3.코드를 작성할 클래스 생성
public static void main(string[] args를 체크)
4.코드작성
5.run하여 확인하여준다.
배열 (0) | 2018.01.05 |
---|---|
switch,if,while,for (0) | 2018.01.04 |
입력과 출력 (0) | 2018.01.04 |
자료형 (0) | 2018.01.04 |
eclipse_java연동 (0) | 2018.01.04 |
a java runtime environment or java development kit must be available in order to run eclipse. no java virtual machine was fountd after searching the following locations:~javaw.exe in your current path
이러한 오류가 나오게 되었다.
즉이는 javaw.exe라는것을 연동하여 eclipse를 실행하고 싶지만 이것이 어디있는지 모르기때문제 path->즉 환경변수에 등록을 해달라는 의미이다.
javaw는 처음 java를 설치할때 알 수 있다.
다음과같다.
자바 홈페이지에 들어가 다음을 설치한다.
들어가면 java가 설치될 위치가 나와있을것이다.
그 위치의 java폴더안에 들어가서 bin안에 있다.
default로 되어있을시 위치는 다음과 같을 것이다.
C:\Program Files\Java\jre1.8.0_144\bin\
이것을
고급시스템 환경설정-환경변수-시스템변수
의 편집
다음과같이 해주면
다음과같이 잘 깔린다.
(내이클립스 경로는 C:\Program Files\workspace 여기였다.)
배열 (0) | 2018.01.05 |
---|---|
switch,if,while,for (0) | 2018.01.04 |
입력과 출력 (0) | 2018.01.04 |
자료형 (0) | 2018.01.04 |
자바-eclipse tutorial (0) | 2018.01.04 |