희렌버핏
생활코딩 자바 본문
숫자와 문자열
public class Number{
public static void main(String[] args){
System.out.println(1+2);
}
>>>>>>3
문자(Character)와 문자열(String)
문자열 : ""
문자 : ''
public class CharString{
public static void main(String[] args){
System.out.println("생활코딩"+"입니다");
}
>>>>>>생활코딩입니다
public class CharString{
public static void main(String[] args){
System.out.println("1"+"1");
}
>>>>>>11
******************************
\ " -----> 따은표 찍는 법
\ n -----> 줄바꿈
******************************
변수(변할 수 있는 데이터, Variable)
public class IntegerDemo{
public static void main(String[] args){
int a;
a = 1;
System.out.println(a+1);
}
}
>>>>>>2
정수와 실수
public class DoubleDemo{
public static void main(String[] args){
double a;
a = 1.1;
System.out.println(a+1.1);
}
}
>>>>>>2.2
문자열
public class StringDemo{
public static void main(String[] args){
String first;
firtst = "coding";
String first = "coding";
}
}
변수의 효용
복잡한 로직을 가진 알고리즘을 사용할 경우 변수를 사용해서 숫자를 달리해 로직을 수행한다.
변수값 한줄만 변경해주면 전체를 수정하지 않아도 됨. 유지보수의 용이성. 중복제거.
주석(comment)과 세미콜론
//
/**
* 문서가 만들어진다.
*
*
*/
세미콜론 : 문장 끝났음을 알려준다.
데이터 타입
8 bit = 1 byte
1024 byte = 1 kilobyte
1024 kilobyte = 1 megabyte
1024 megabyte = 1 gigabyte
1024 gigabyte = 1 terabyte
1 petaabyte
1 exabyte
1 zettabyte
데이터타입 비교
*정수형
byte 1byte -128~127
short 2byte -32768~32767
int 4byte
long 8byte
*실수형
float 4byte
double 8byte
*문자
char 2byte
상수의 데이터 타입
상수(constant) = 변하지 않는 값
public class ConstantDemo{
public static void main(String[] args){
double a = 2.2;
float b = 2.2F;
long c = 2147483648L;
//byte와 short는 int를 넣는게 가능하다. 단, byte로 표시할 수 있는 범위를 넘어서면 안된다.
}
}
형변환(Type Conversion)
int -> double, float로 바꿀 수 있음
char는 int로 변형 가능 (아스키코드)
자동 형 변환
double a = 3.0f;
큰거 = 작은거
float a = 3.0; (double형을 float에 넣는거 안됨)
명시적 형 변환
float a = (float)100.0;
int b = (int) 100.0F;
연산자(operator)
대입 : 넣는다
산술 : +,-,*,/,%
비교 : 크다, 작다, 같다
논리
형변환
int 정수/int 정수 = 실수 -->>> 실수의 소수점 아래 수가 탈락되고 정수만 나옴
float 실수/float 실수 = 실수 -->>> 실수를 나눠서 실수가 됐기 때문에 소수점 아래 안 잃어버림
int 정수/float 실수 = 각각의 수를 먼저 형변환 시켜준다. int형이 float형으로 바뀐다. 답은 실수형으로 나옴
단항 연산자
1+2 -->>> 두개의 항이 있으므로 이항 연산자
비교와 Boolean
== 같냐
!= 같지 않냐
a.equals(b) ---> a와 b의 값이 같냐
조건문
public class LoginDemo2{
public static void main(String[] args){
String id = args[0];
String password = args[1];
if(id.equals("egoing")){
if(password.equals("111111"){
System.out.println("right");
}else{
System.out.println("wrong");
}
}else{
System.out.println("wrong");
}
}
}
switch문
입력된 값이 1일 경우
switch(1){
case 1:
System.out.println("one");
break;
case 2:
System.out.println("two");
break;
default:
System.out.println("default");
}
논리 연산자
&& : 좌우 다 참일 때
public class LoginDemo3{
public static void main(String[] args){
String id = args[0];
String password = args[1];
if(id.equals("egoing") && password.equals("111111")){
System.out.println("right");
}else{
System.out.println("wrong");
}
}
}
|| : 좌우 하나라도 참일 때
! : 부정, 반대값
반복문(loop,ieration)
*while
int i = 0;
while(i<10){
System.out.println(i);
i++;
}
for(int i=0; i<10; i++){
}
for(int i=0; i<10; i++){
for(int j=0; j<10; j++{
System.out.println(i + "" + j);
}
}
배열
String[] classGroup = {"최진혁","최유빈","한이람","이고잉"};
String[] classGroup = new String[4];
classGroup[0] = "최진혁";
System.out.println(classGroup.length); >>>>4
String[] members = {"가","나","다"};
for(int i=0; i < members.length; i++){
String member = members[i];
System.out.println(member + "입니다");
}
String[] members = {"가", "나", "다"};
for(String e : members){
System.out.println(e + "입니다");
}
메소드
public static void numbering(){
}
public static void main(String[] args){
numbering( );
}
public static String numbering(int init, int limit){
int i = init;
String output ="";
while(i < limit){
output += i;
i++;
}
return output;
}
public static void main(String[] args){
String result = numbering(3,5);
System.out.println(result);
}
입력과 출력
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
System.out.println(i*1000);
sc.close();
클래스 맴버와 인스턴스 맴버
클래스 : 설계도
인스턴스 : 설계도에 따라 만들어진 제품
객체 : 변수와 메소드의 집합
static : 모든 메소드에서 동일한 값을 갖게 된다.
인스턴스 메소드는 static변수에 접근할 수 있음
static 메소드는 인스턴스 변수가 접근 못함
클래스를 이용해서 static 메소드 접근 가능
인스턴스 변수 : Non-Static Field
클래스 변수 : Static Field
생성자
class Calculator{
int left, right;
public Calculator(int left, int right){ //생성자, constructor
this.left = left;
this.right = right;
}
public void sum(){
System.out.println(this.left + this.right);
}
public void avg(){
System.out.println((this.left+this.right)/2);
}
}
public void static CalculatorDemo(String[] args){
Calculator c1 = new Calculator(10, 20); //인스턴스를 생성하는 자
c1.sum();
c1.avg();
}
상속(코드 중복 제거, 유지보수 편리, 가독성 높아짐, 재활용성 좋음)
class Cal{
int left, right;
public Cal(){}
public Cal(int left, int right){
this.left = left;
this.right = right;
}
public void sum(){
System.out,println(this.left + this.right);
}
public void avg(){
System.out,println((this.left + this.right)/2);
}
}
class Sub extends Cal{
public Sub(int left, int right){
super(left,right); //super는 부모클래스
}
public void substract(){
System.out,println(this.left - this.right);
}
}
public class CalculatorDemo1{
public static void main(String[] args){
Sub c1 = new Sub(10,20);
c1.sum();
c1,avg();
c1.substract();
}
}