封装
-
面向对象的三大特征:
–封装
–继承
–多态
有了封装才有继承,有了继承才有多态。
-
什么是封装,封装有什么用?
一个类体当中的数据,假设封装之后,对于代码的调用人员来说,不需要关心代码的复杂实现,只需要通过一个简单的入口就可以访问量,另外,类体中安全级别较高的数据封装起来,外部人员不能随意访问,来保证数据的安全性。
-
怎么进行封装?代码怎么实现?
第一步:属性私有化(使用private关键字进行修饰。)
第二步:对外提供简单的操作入口。
get方法的要求:
public 返回值类型 get+属性名首字母大写(无参){
return xxx;
}
set 方法的要求:
public void set+属性名首字母大写(有一个参数){
xxx = 参数;
}
public class PersonTest{ public static void main(String[] args){ Person p1 = new Person(); p1.setAge(100); System.out.println(p1.getAge); } }
public class Person{ //private表示私有的,被这个关键字修饰之后,该数据只能在本类中访问。 private int age; //set public int getAge(){ return age; } //get public void setAge(int a){ age = a; } }
-
static
带有static的:通过类名.的方式进行调用。
不带static的:通过new运算符创建对象,然后再用引用.的方式进行调用。
public class MethodTest{ public static void main(String[] args){ MthodTest.doSome(); MethodTest mt = new MethodTest(); mt.doOther(); } //带有static静态 public static void doSome(){ System.out.println("do some!"); } //不带static的实例方法 public void doOther(){ System.out.println("do other!"); } }
变量的分类:局部变量、成员变量。
成员变量:实例变量、静态变量。
内存
什么时候变量声明为实例的,什么时候声明为静态的?
——如果这个类型的所有对象的某个属性值都是一样的,不建议定义为实例变量,浪费内存空间。建议定义为类级别特征,静态变量。
——当方法体直接访问到了实例变量,一定是实例方法。
以后的开发中,大部分情况下,如果是工具类的话,方法一般都是静态的积极,静态方法有一个优点,是不需要new对象,直接采用类名调用,极其方便。
静态代码块
-
使用static关键字可以定义静态代码块
-
静态代码块的语法机制:
static{
java语句;
java语句;
}
-
static静态代码块在类加载时执行,并且只执行一次。
-
注意:静态代码块在类加载时执行,在main方法执行之前执行。
-
静态代码块一般是自上而下的顺序执行。
-
是sun公司给java程序员的一个特殊时机,叫做类加载时机。
具体业务:所有我们编写的程序中,只要是类加载了,请记录一下类加载的日志信息。
实例语句块
-
实例语句语法:
{
java语句: java语句:
java语句:
}
-
实例语句只要是构造方法执行,必然在构造方法执行之前,自动执行实例语句块中的代码。
实例语句也叫做对象构建时机。