본문 바로가기



Dart 16. 클래스 생성과 호출 그리고 초기화 {유목민 알폰스}



DART클래스를에 대한 생성과 호출 변수와 메소드의 초기화를 비롯한 여러가지 다양한 특성들을  살펴 봅니다. 
 

클래스 생성과 선언 호출

class User{
  String name = '알폰스';
  int age = 25;
  void setHello(){
    print('Hello $name, age: $age');
  }
}

main(List<String> args){
  User user = new User();//객체의 생성
  print(user.name);//멤버변수 접근
  print(user.age);//멤버변수 접근
  user.setHello();//멤버메소드 접근
}

출력)
알폰스
25
Hello 알폰스, age: 25

----------------------------------------

main(List<String> args){
  User user = new User();//객체의 생성
  print(user.name);//멤버변수 접근
  print(user.age);//멤버변수 접근
  user.setHello();//멤버메소드 접근

  User user2 = User()..age = 21..name="애드워드";
  user2.setHello();
}

출력)
알폰스
class User{
  String name = '알폰스';
  int age = 25;
  void setHello(){
    print('Hello $name, age: $age');
  }
}

main(List<String> args){
  User user = new User();//객체의 생성
  print(user.name);//멤버변수 접근
  print(user.age);//멤버변수 접근
  user.setHello();//멤버메소드 접근
}

출력)
알폰스
25
Hello 알폰스, age: 25

----------------------------------------

main(List<String> args){
  User user = new User();//객체의 생성
  print(user.name);//멤버변수 접근
  print(user.age);//멤버변수 접근
  user.setHello();//멤버메소드 접근

  User user2 = User()..age = 21..name="애드워드";
  user2.setHello();
}

출력)
알폰스
25
Hello 알폰스, age: 25
Hello 애드워드, age: 21

 

클래스 멤버 선언

class User{
  String msg = "안녕하세요";
  static String msg2 = "반갑습니다.";

  fun1(){
    print("fun1...호출");
  }

  fun2(){
    print("fun2...호출");
  }
}

main(){
  User.msg2 = "반갑습니다.2";//static로 선언한 변수는 클래스명으로 바로 접근할수 있습니다.
  print(User.msg2);
  
  User user = new User();
  user.msg = "안녕하세요2";//멤버변수는 클래스의 인스턴스를 생성하고 그 이름으로 접근할수 있습니다.
}

생성자와 멤버 초기화

----------------------------------------------
// 클래스 선언
class User{
}
----------------------------------------------
// 기본 생성자를 추가한 예
class User{
	User(){}
}
----------------------------------------------
// 멤버 초기화 생성자
class User{
	late String name;
    late int age
    
    User(String name, int age){
    	this.name = name;
        this.age = age;
    }
    sayHello(){
    	print('name : $name, age : $age');
    }
}
----------------------------------------------
// 멤버 초기화 생성자 단순화
class User{
	late String name;
    late int age;
    User(this.name, this.age);
    sayHello(){
    	print('name : $name, age : $ age');
    }
}
----------------------------------------------
class User{
  String msg = "안녕하세요";
  String msg2 = "반갑습니다.";

  User(String msg, String msg2) : this.msg = msg, this.msg2 = msg2 {}
}
----------------------------------------------
//리스트의 데이터로 초기화
class Test{
  late int data1;
  late int data2;
  Test(List<int> args)
  : this.data1 = args[0],
    this.data2 = args[2]{}
}
----------------------------------------------

class Test{
  late String data1;
  late String data2;

  Test(String arg1, String arg2)
  : this.data1 = rpStr(arg1),
    this.data2 = rpStr(arg2) {}

  static String rpStr(String arg){
    return '{ $arg }';
  }

  printData(){
    print('$data1, $data2');
  }
}

main(){
  Test test = new Test("하나", "두울");
  test.printData();
}

출력)
{ 하나 }, { 두울 }
----------------------------------------------

 
 
 

By. 유목민 알폰스 - Nomadic Alphonse