목록Programming/Java (12)
밍키의 마법세상
객체지향 프로그래밍이란?-> 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간에 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법. 장점은?-> 코드 재사용에 편리 : 상속을 통해 확장하여 사용 가능-> 유지보수의 편의 : 수정할 부분이 클래스 내부의 맴버변수나 메소드이므로 수정이 편리함-> 대형 프로젝트에 적합 : 클래스단위로 개발가능하므로 업무분담이 편리함 단점은?-> 처리속도가 상대적으로 느림-> 객체가 많으면 용량이 커짐-> 설계의 복잡성 클래스란? -> 어떤 문제를 해결하기 위한 데이터를 만들기 위해 추상화를 거쳐 집단에 속하는 속성과 행위를 변수와 메소드로 정의한 것 객체란? -> 클래스에서 정의한 것을 토대로 실제 메모리상에 할당된 것으로 실제 ..
class Shape{ //맴버변수 String name; //생성자 생략 //메소드 public void draw() { System.out.println("Shape 그리기"); } } class Rect extends Shape{ public void draw() { System.out.println("Rectangle 그리기"); } } class Circle extends Shape{ public void draw() { System.out.println("Circle 그리기"); } } public class ShapeExam { public static void main(String[] args) { Shape s = new Shape(); Rect r = new Rect(); Circle ..
class Car { //맴버변수 String brand, color; int speed; Car(){ brand = "선린"; color = "black"; speed = 0; } //메소드 void speedUp() {speed+=5;} void speedDown() {speed-=5;} } class Truck extends Car{ //맴버변수 int ton = 1, weight = 0; //메소드 void loadUp(int weight) { this.weight = weight; } void loadDown() { this.weight = 0; } } public class carExam { public static void main(String[] args) { Truck truck = ne..
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576import java.util.Random;import java.util.Scanner; class Main{ public static void main(String[] args){ int num; int scanValue = 0; String scanString; Random random = new Random(); num = random.nextInt(3); Scanner scan = new Scanner(System.in); System.out.p..
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 import java.util.Random;import java.util.Scanner;class Main { static int strike = 0; static int ball = 0; public static void main(String[] args) { int[] computer = new int[3]; int[] user = new int[3]; Random random; for(random = new Random(); computer[0] == 0; computer[0] = random.nextInt(10..
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 import java.io.*; class Main{ public static void main(String[] args)throws IOException { System.out.println("사다리타기를 시작합니다."); System.out.println(); int flag = 0; M..

이번엔 static에 대해 알아보자! 간단히 말해서 static이 붙은 변수는 클래스 변수, static이 붙은 메소드는 클래스 메소드이다. C에서 전역변수를 비교해보자면 전역변수는 소스파일, 헤더파일에 직접적으로 프로그램 내부에서 사용할 수 있게 전역변수 선언이 가능하다. 이게 가능한 이유는 C, C++의 경우엔 프로그램을 컴파일 시키고 실행시키면 모든 필요한 변수를 미리 메모리에 생성하기 때문이다. 그러나 자바의 경우에는 class단위로 파일이 쪼개지는걸 알 수 있다. 그리고 미리 모든 변수를 메모리공간에 올리는 것이 아닌 class 단위로 변수를 생성하게 된다. 이렇게 필요할때 불러오는 것이 객체지향 프로그래밍 언어의 특징중 하나인데 이 클래스 변수는 프로그램이 실행됨과 동시에 메모리에 있는다 이러..

접근제어 지시자를 이용하여 정보를 은닉하고 객체지향언어 3요소중 하나인 "캡슐화"에 대해 알아보자! 접근제어 지시자란? --> private, default, protected, public으로 나뉘는데 지시자 접근 허용범위 클래스 내부 해당 패키지 내부 상속받은 클래스 그 이외의 부분 private 가능 불가능 불가능 불가능 default 가능 가능 불가능 불가능 protected 가능 가능 가능 불가능 public 가능 가능 가능 가능 default 지시자 --> 같은 클래스, 같은 패키지 내부에서 사용이 가능하다. 이렇게 실행을 하게 되면 f.int_private = 3;에서 오류가 나게 된다. 그 이유는 privat 의 접근범위는 클래스 내부에서만 가능하지만 Func클래스를 벗어난 Test2클래스..