收获
通过今天的学习,了解了Java中getter方法/setter方法的使用,学习如何创建一个方法和方法重载的相关应用,this方法和变量作用域的相关概念。还做了一部分扑克的程序
setter/getter方法使用
为什么要用
大多数字段的访问都是通过Getter和Setter方法来间接访问,为什么不直接将字段设置为公开属性Public呢?答案在于前者的未来可能性。当我在Java语言编程中开始我的职业生涯时,我就对Getter和Setter感到困惑。为什么要这么写呢?为什么不直接用Public呢?这对我来说是个奇怪的语法。
我们知道Java具有封装性,比如,用户在将具有同种特性的数据或者方法聚集在一个了里面,需要时从里面调用即可。在封装时,具有public公有/private私有俩种情况。setter和getter方法正式为了解决这个问题。代码如下:
private修饰的变量无法被外部电泳和改变,听过setter/getter方法来给这个变量进行引用。
public void setNumber(String num){
number = num;
}
//给外部提供一个get方法 访问某个变量的值
public String getNumber() {
return number;
}
public String getColor() {
return color;
}
//某一个方法里面调用this指的是 调用这个方法的对象
public void setColor(String color) {
this.color = color;
}
构造方法
构造方法,简单的概括就是,名字相同功能不同的方法
class Poker{
//成员变量的作用域 从对象创建到对象被销毁
private String number;
private String color;
//类的默认构造方法
public Poker(){
number = "2";
color = "♠";
System.out.println("构造方法");
}
//构造方法的重载 自定义一个有参数的构造方法
//通常给一个属性赋值 形参名尽量和属性名一致
//变量在使用的时候有就近原则
public Poker(String num,String col){
//调用构造方法的时候 这个对象在内存里面已经分配好了
number = num;
color = col;
System.out.println("自定义的构造方法");
}
Poker pp = new Poker();
System.out.println(pp.getNumber());
System.out.println(pp.getColor());
Poker pp2 = new Poker("K","♥");
System.out.println(pp2.getNumber());
System.out.println(pp2.getColor());
Poker pp3 = new Poker("K","♥");
System.out.println(pp3.getNumber());
System.out.println(pp3.getColor());
this方法
用来明确当前方法变量,解决与其它方法变量冲突的问题
public Poker(String number,String color){
//调用构造方法的时候 这个对象在内存里面已经分配好了
this.number = number;
this.color = color;
System.out.println("自定义的构造方法");
}
static/静态区
存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。
static修饰的对象和方法,会在程序运行时先开始初始化。