'Java > Constructor (생성자)' 카테고리의 다른 글
static 기본3 (0) | 2012.04.11 |
---|---|
정적 메서드 정의하기 (0) | 2012.04.11 |
static 기본 (0) | 2012.04.11 |
정직 멤버변수와 인스턴스 멤버 변수의 차이점 (0) | 2012.04.11 |
메소드 간단 예제 (0) | 2012.04.11 |
static 기본3 (0) | 2012.04.11 |
---|---|
정적 메서드 정의하기 (0) | 2012.04.11 |
static 기본 (0) | 2012.04.11 |
정직 멤버변수와 인스턴스 멤버 변수의 차이점 (0) | 2012.04.11 |
메소드 간단 예제 (0) | 2012.04.11 |
public class StaticEx3 { public static void main(String[] args){ StaticCount sc1 = new StaticCount(); System.out.println("sc1의 c: "+ sc1.c + ", sc1의 count: " + StaticCount.count); StaticCount sc2 = new StaticCount(); System.out.println("sc2의 c: "+ sc2.c + ", sc2의 count: " + StaticCount.count); StaticCount sc3 = new StaticCount(); System.out.println("sc3의 c: "+ sc3.c + ", sc3의 count: " + StaticCount.count); } }
sc1의 c: 1, sc1의 count: 1
예비 (0) | 2012.04.11 |
---|---|
정적 메서드 정의하기 (0) | 2012.04.11 |
static 기본 (0) | 2012.04.11 |
정직 멤버변수와 인스턴스 멤버 변수의 차이점 (0) | 2012.04.11 |
메소드 간단 예제 (0) | 2012.04.11 |
public class StaticCount { int c; //인스턴스 변수 static int count; // 클래스(static)변수 /*객체 생성과 무관 호출에 의해 메모리에 올라가서 여러 객체에서 공유할 수 있음*/ public StaticCount(){ c++; count++; } }
class StaticTest001{//정적 메서드 정의하기 private static int a=10; private int b=20; public static void SetA(int new_a){ a = new_a; } public static int getA(){ return a; } } public class StaticTest02 { public static void main(String[] args){ //System.out.println(StaticTest.a); //a가 private으로 선언되어서 컴파일 에러 발생 (접근제한 때문에 호출불가) System.out.println(StaticTest001.getA()); /*getA(),setA()가 static하기 때문에 getA(),setA()만 호출할 경우 객체 생성하지 않고 호출가능 StaticTest001 s1= new StaticTest001(); StaticTest001 s2= new StaticTest001();*/ StaticTest001.SetA(10000); int res1=StaticTest001.getA(); System.out.println(res1); System.out.println(StaticTest001.getA()); } }
10
예비 (0) | 2012.04.11 |
---|---|
static 기본3 (0) | 2012.04.11 |
static 기본 (0) | 2012.04.11 |
정직 멤버변수와 인스턴스 멤버 변수의 차이점 (0) | 2012.04.11 |
메소드 간단 예제 (0) | 2012.04.11 |
public class StaticEx1 { int a; //인스턴스 변수 static String s; //클래스(Static)변수 public static void main(String args){ s = "자바의 꿈"; //같은 클래스의 클래스 변수 호출시 클래스명 생략 ex)StaticEx1.s = 자바의꿈; System.out.println("s : " + StaticEx1.s); //인스턴스 변수는 객체 생성 후 호출 가능 //a = 1000; StaticEx1 st1 = new StaticEx1(); st1.a = 1000; } }
s1.b->20 s2.b->20
static 기본3 (0) | 2012.04.11 |
---|---|
정적 메서드 정의하기 (0) | 2012.04.11 |
정직 멤버변수와 인스턴스 멤버 변수의 차이점 (0) | 2012.04.11 |
메소드 간단 예제 (0) | 2012.04.11 |
동물 만들기 (0) | 2012.04.11 |
class StaticTest{//정직 멤버변수와 인스턴스 멤버 변수의 차이점 static int a=10; //클래스(static)에 올라감 int b=20; //heap에 올라감 } public class StaticTest01 { public static void main(String[] args){ System.out.println("StaticTest.a->"+StaticTest.a); StaticTest s1 = new StaticTest(); StaticTest s2 = new StaticTest(); System.out.println("s1.a->"+StaticTest.a+"\t s2.a->" + StaticTest.a); System.out.println("s1.b->"+StaticTest.a+"\t s2.b->" + s2.b); //정확한 호출 방법이 아님 StaticTest.a 로 호출해야됨 StaticTest.a=100; System.out.print("s1.a->" + StaticTest.a); System.out.println("\t s2.a->"+StaticTest.a); s1.b=200; System.out.print("s1.b->" + s2.b); System.out.println("\t s2.b->"+s2.b); } }
StaticTest.a->10
정적 메서드 정의하기 (0) | 2012.04.11 |
---|---|
static 기본 (0) | 2012.04.11 |
메소드 간단 예제 (0) | 2012.04.11 |
동물 만들기 (0) | 2012.04.11 |
생성자 기본 (0) | 2012.04.11 |
public class MethodTest004 { void prn(int ... num){ //int형 데이터를 출력하는 메서드의 정의 for(int i=0; i<num.length; i++){//전달인자의 개수만큼 반복하면서 System.out.print(num[i]+"\t"); //배열 형태로 출력한다. } System.out.println(); } public static void main(String[] args){ MethodTest004 mt = new MethodTest004(); mt.prn(10,20,30); //개수에 상관없이 메서드를 호출할 수 있다. mt.prn(40,50); mt.prn(60); } }
10 20 30
static 기본 (0) | 2012.04.11 |
---|---|
정직 멤버변수와 인스턴스 멤버 변수의 차이점 (0) | 2012.04.11 |
동물 만들기 (0) | 2012.04.11 |
생성자 기본 (0) | 2012.04.11 |
생성자 내에 또다른 생성자를 호출 (0) | 2012.04.11 |
동물 객체 만들기 Animal
멤버 필드 : 이름 나이 비행여부 boolean type -은닉화
생성자
멤버 메소드(캡슐화)
Animal Main
육상동물(포유류)
생성자 이용해서 데이터 셋팅
출력
이름
나이 (세)
비행여부 (불가능)
조류 포함
class Ani{ //멤버 필드 은닉화 private String name; private int age; private boolean fly; //캡슐화 public void setName(String n){ name = n; } public void setAge(int a){ age = a; } public void setFly(boolean f){ fly = f; } //get name으로 값 가져오기 public String getName(){ return name; } public int getAge(){ return age; } public boolean getFly(){ return fly; } //생성자 public Ani(){} //멤버 메소드 public void info(){ System.out.println(); } } //메인 메소드 public class AnimalMain{ public static void main(String[] args){ Ani a = new Ani(); a.setName("하마"); a.setAge(10); a.setFly(false); System.out.println("이름 : "+a.getName()); System.out.println("나이 : "+a.getAge()+"세"); if(a.getFly()) System.out.println("비행 여부 : 가능"); else System.out.println("비행 여부 : 불가능"); System.out.println("=================="); a.setName("참새"); a.setAge(4); a.setFly(true); System.out.println("이름 : "+a.getName()); System.out.println("나이 : "+a.getAge()+"세"); if(a.getFly()) System.out.println("비행 여부 : 가능"); else System.out.println("비행 여부 : 불가능"); } }
이름 : 하마
정직 멤버변수와 인스턴스 멤버 변수의 차이점 (0) | 2012.04.11 |
---|---|
메소드 간단 예제 (0) | 2012.04.11 |
생성자 기본 (0) | 2012.04.11 |
생성자 내에 또다른 생성자를 호출 (0) | 2012.04.11 |
this 레퍼런스 (0) | 2012.04.11 |
public class ThisTest2 { int a; int b; public ThisTest2(int a,int b){ //생성자 또는 메소드영역에서 //멤버변수와 지역변수의 명칭이 같을때는 //지역변수가 우선 //this.a 는 위에있는 a이고 a는 int a이다 //this는 멤버변수 호출이다 this.a=a; this.b=b; //멤버변수 지역변수 this.print(); } public void print(){ System.out.println(a + "," + b); } public static void main(String[] args){ ThisTest2 t = new ThisTest2(4,5); } }
4,5
메소드 간단 예제 (0) | 2012.04.11 |
---|---|
동물 만들기 (0) | 2012.04.11 |
생성자 내에 또다른 생성자를 호출 (0) | 2012.04.11 |
this 레퍼런스 (0) | 2012.04.11 |
생성자 오버로딩 (0) | 2012.04.11 |
public class ThisConEx {//생성자 내에 또다른 생성자를 호출 public ThisConEx(){ /*this()는 생성자 내부에서 또 다른 생성자를 호출할때, 생성자 내부에서 또다른 생성자를 호출할 때는 생성자 최상단에 위치시켜야 함 (다른 수행문 보다 우선적으로 호출되어야함) System.out.println("ThisConEx() 호출");*/ this("엄마"); } public ThisConEx(char[] ch){ this(String.valueOf(ch));//char[] -> String } // - >"my♥SunAe" public ThisConEx(long lo){ this(String.valueOf(lo)); //long -> String } //900000000L -> 900000000 public ThisConEx(boolean b){ this(String.valueOf(b)); //boolean -> String //true -> true } public ThisConEx(String str){ System.out.println(str+"의 길이 : "+str.length()); } public static void main(String[] args){ char[] ch = {'m','y','♥','S','u','n','A','e'}; long lo = 900000000L; boolean b = true; ThisConEx te1 = new ThisConEx(); //엄마를 출력하는데 String 안에 들어가 의 길이 표시가됨 ThisConEx te2 = new ThisConEx(lo); ThisConEx te3 = new ThisConEx(b); ThisConEx te4 = new ThisConEx(ch); } }
엄마의 길이 : 2
동물 만들기 (0) | 2012.04.11 |
---|---|
생성자 기본 (0) | 2012.04.11 |
this 레퍼런스 (0) | 2012.04.11 |
생성자 오버로딩 (0) | 2012.04.11 |
은닉화 생성자 오버로딩 (0) | 2012.04.11 |
public class ThisTest {//레퍼런스 this(생성자) public ThisTest(){ System.out.println("객체생성 : "+this); //참조 변수의 일종 this } public static void main(String[] args){ ThisTest tt = new ThisTest(); System.out.println("객체 생성후 : "+tt); //this는 객체 내부에서만 작동하기 때문에 따로 클래스를 만들어 객체화 } }
객체생성 : ThisTest@c05d3b
생성자 기본 (0) | 2012.04.11 |
---|---|
생성자 내에 또다른 생성자를 호출 (0) | 2012.04.11 |
생성자 오버로딩 (0) | 2012.04.11 |
은닉화 생성자 오버로딩 (0) | 2012.04.11 |
생성자 정의하기 (0) | 2012.04.11 |
class MyDate3{//생성자 오버로딩 private int year; private int month; private int day; public MyDate3(){} //밑에 생성자를 만들었기 때문에 위에가 자동적으로 만들어지지 않음 public MyDate3(int new_year, int new_month, int new_day){ year=new_year; month=new_month; day=new_day; } public void print(){ System.out.println(year+ "/" +month+"/"+day); } } public class ConstructorTest05 { public static void main(String[] args){ MyDate3 d= new MyDate3(); d.print(); MyDate3 d2=new MyDate3(2007,7,19); d2.print(); } }
0/0/0
생성자 내에 또다른 생성자를 호출 (0) | 2012.04.11 |
---|---|
this 레퍼런스 (0) | 2012.04.11 |
은닉화 생성자 오버로딩 (0) | 2012.04.11 |
생성자 정의하기 (0) | 2012.04.11 |
생성자 은닉화 캡슐화 (0) | 2012.04.11 |
public class MyClass1 {//MyClass1Test이랑 연결 //메인이 없기에 MyClass1Test랑 연결시킴 //은익화 private String name; //name = null //null = 객체에 주소가 없어 참조 못함 //생성자(오버로딩으로 볼 수 있음) public MyClass1(){} //생성자 public MyClass1(String n){ name = n; } //캡슐화 public void setName(String n){ name=n; } public String getName(){ return name; } }
public class MyClass1Test {//MyClass1이랑 연결 public static void main(String[] args){ MyClass1 mc1 = new MyClass1(); System.out.println(mc1.getName()); mc1.setName("일꾼개미"); System.out.println(mc1.getName()); MyClass1 mc2 = new MyClass1("홍길동"); System.out.println(mc2.getName()); } }
null
this 레퍼런스 (0) | 2012.04.11 |
---|---|
생성자 오버로딩 (0) | 2012.04.11 |
생성자 정의하기 (0) | 2012.04.11 |
생성자 은닉화 캡슐화 (0) | 2012.04.11 |
참조 호출 Call by reference (0) | 2012.04.11 |
class MyDate2{//생성자 정의하기 private int year; private int month; private int day; //없어도 됨 (자동으로됨) public MyDate2(){ System.out.println("[생성자] : 객체가 생성될 때 자동 호출됩니다."); year=2011; month=12; day=16; } public void print(){ System.out.println(year + "/" + month + "/" +day); } } public class ConstructorTest02 { public static void main(String[] args){ MyDate2 d = new MyDate2(); d.print(); } }
[생성자] : 객체가 생성될 때 자동 호출됩니다.
생성자 오버로딩 (0) | 2012.04.11 |
---|---|
은닉화 생성자 오버로딩 (0) | 2012.04.11 |
생성자 은닉화 캡슐화 (0) | 2012.04.11 |
참조 호출 Call by reference (0) | 2012.04.11 |
생성자 정의와 호출 (0) | 2012.04.11 |
class Bank{//은닉화 캡슐화 //은닉화 (금고) private int money; private int card; //캡슐화 어디서든 호출가능하게 하려고 public (은행원) public void setMoney(int m){//데이터를 set하는 함수 set money = m; } public void setCard(int c){ card = c; } public int getMoney(){//데이터를 리턴하는 함수get return money; //setMoney의money를 가져옴 } public int getCard(){ return card; } } public class VariableTest2 { public static void main(String[] args){ Bank b = new Bank(); /*private 접근 제한 때문에 호출 불가 System.out.println(b.money); System.out.println(b.card);*/ //데이터 저장 b.setMoney(1000); b.setCard(2000); System.out.println(b.getMoney()); System.out.println(b.getCard()); } }
1000
은닉화 생성자 오버로딩 (0) | 2012.04.11 |
---|---|
생성자 정의하기 (0) | 2012.04.11 |
참조 호출 Call by reference (0) | 2012.04.11 |
생성자 정의와 호출 (0) | 2012.04.11 |
인자 전달 방식 참조 호출 Call by reference (0) | 2012.04.11 |
class MyDate{//참조 호출 call by reference int year=2006; int month=4; int day=1; } class RefMethod{ void changeDate(MyDate t){ t.year=2007; t.month=7; t.day=19; } } public class MethodTest09 { public static void main(String[] args){ RefMethod rm = new RefMethod(); MyDate d=new MyDate(); //각 각 클래스 메모리에 올리기 System.out.println("함수 호출전 d-> "+d.year+"/" +d.month+ "/" +d.day); rm.changeDate(d); //주소를 MyDate t로 넘기기 //t는 MyDate클래스의 안에 객체로 넘어감 //int대신 MyDate가 오면 참조자료형이 오면은 값이 아닌 주소가 오게됨 System.out.println("함수 호출전 d-> "+d.year+"/" +d.month+ "/" +d.day); } }
함수 호출전 d-> 2006/4/1
생성자 정의하기 (0) | 2012.04.11 |
---|---|
생성자 은닉화 캡슐화 (0) | 2012.04.11 |
생성자 정의와 호출 (0) | 2012.04.11 |
인자 전달 방식 참조 호출 Call by reference (0) | 2012.04.11 |
인자 전달 방식 값 호출 Call by Value2 (0) | 2012.04.11 |