今天学的是封装,this关键字,和静态static。
其中封装,上个大任务中没了解的封装今天学到了,知道了封装的主要作用是防止误操作,运用private限制其权限。从而达到目的。
我们观察如下代码:
class Person{
private String name ; // 表 示 姓 名private int age ; // 表示年龄void tell(){
System.out.println("姓名:" + name + ";年龄:" + age) ;
}
};
public class Demo{
public static void main(String args[]){ Person per = new Person() ; per.name = "张三" ;
per.age = -30 ; per.tell() ;
}
};
以上的操作代码并没有出现了语法错误,但是出现了逻辑错误 (年龄-30岁)
在开发中, 为了避免出现逻辑错误, 我们建议对所有属性进行封装,并为其提供setter及getter方法进行设置和取得操作。
修改代码如下:
class Person{
private String name ; // 表 示 姓 名private int age ; // 表示年龄void tell(){
System.out.println("姓名:" + getName() + ";年龄:" + getAge()) ;
}
public void setName(String str){ name = str ;
}
public void setAge(int a){ if(a>0&&a<150)
age = a ;
}
public String getName(){ return name ;
}
public int getAge(){ return age ;
}
};
public class OODemo10{
public static void main(String args[]){ Person per = new Person() ;
per.setName("张三") ;
per.setAge(-30) ;
per.tell() ;
}
}
this
在Java基础中,this关键字是一个最重要的概念。使用this关键字可以完成以下的操作:
- 调用类中的属性
- 调用类中的方法或构造方法
- 表示当前对象
static
static表示“静态”的意思,可以用来修饰成员变量和成员方法(后续还会学习 静态代码块 和 静态内部类)。
static的主要作用在于创建独立于具体对象的域变量或者方法简单理解:
被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访
问。
并且不会因为对象的多次创建 而在内存中建立多份数据
- 静态成员 在类加载时加载并初始化。
- 无论一个类存在多少个对象 , 静态的属性, 永远在内存中只有一份( 可以理解为所有对象公用 )
- 在访问时: 静态不能访问非静态 , 非静态可以访问静态 !