【02】对象的Getter and Setter
java和C#非常相似,它们大部分的语法是一样的,但尽管如此,也有一些地方是不同的。
为了更好地学习java或C#,有必要分清它们两者到底在哪里不同。
我们这次要来探讨对象的Getter and Setter
java中的实现:
1 package HelloWorld; 2 3 public class HelloWorld { 4 public static void main(String[] args) { 5 Student stu=new Student(); 6 stu.set_name("李四"); 7 System.out.println(stu.get_name()); 8 } 9 10 } 11 class Student{ 12 13 private String _name; 14 public String get_name() { 15 return _name; 16 } 17 18 public void set_name(String _name) { 19 this._name = _name; 20 } 21 22 }
C#中的实现(在C#中set和get方法叫做属性):
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace ConsoleApp1 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 Student stu = new Student(); 14 stu.Name = "李四"; 15 Console.WriteLine(stu.Name); 16 Console.ReadKey(); 17 } 18 } 19 20 class Student 21 { 22 private string _name; 23 private int age; 24 25 public string Name 26 { 27 get 28 { 29 return _name; 30 } 31 32 set 33 { 34 _name = value; 35 } 36 } 37 } 38 }
C#还可使用匿名属性(如果的单纯的读写,c#可以直接写成匿名属性),等价于:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace ConsoleApp1 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 Student stu = new Student(); 14 stu.Name = "李四"; 15 Console.WriteLine(stu.Name); 16 Console.ReadKey(); 17 } 18 } 19 20 class Student 21 { 22 //private string _name; 23 public string Name 24 { 25 get;set; 26 } 27 } 28 }
分析和总结:
1、在属性的过滤上,不管是java还是c#都可以在set和get的方法里面对操作进行过滤。
2、如果只是单纯做读和写,C#的匿名属性比java的语法更为简洁。
谢谢观看!