面向对象编程:
1.静态变量和静态函数
⑴静态变量
①当static修饰成员变量时,该变量称为类变量,也叫做静态变量、静态属性。
②该类的每个对象都共享同一个类变量的值。任何一个该类的对象都可以访问到同一个值;修改该类变量值的时候,修改的也是同一个值;也可以在不创建该类的对象的情况下对类变量进行 *** 作。
★注意:
①静态变量可以通过"对象名.变量名"来访问,也可以通过"类名.变量名"来访问。
②从底层将,静态变量在类被载入时创建,只要类存在,静态变量就存在,不管对象是否被实例化。
⑵静态变量的常见应用
①保存跨对象信息
②存储对象个数
⑶静态函数
①有静态变量就有静态函数,静态变量和静态函数统称为静态成员,静态函数就是在普通函数的定义前加上关键字static。
②静态函数的注意事项:
a.静态函数可以直接访问静态成员,但不能访问非静态成员;
b.非静态函数可以访问静态或者非静态成员;
c.静态函数不能出现this、super关键字。
③静态成员变量只会在数据共享区中维护一份,而非静态成员变量会在每个对象中维护一份
④作用:
a.static修饰成员变量:如果有数据需要共享所有数据使用时
b.static修饰成员函数:如果一个函数没有直接访问非静态成员时,那么可以使用static修饰,一般用于工具类的方法
⑤访问方式:
a.静态修饰成员变量与方法时,可以用类名或者对象进行访问
b.非静态修饰成员变量与方法时,只能用对象进行访问。
⑷静态代码块
①static代码块也叫静态代码块,是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个静态代码块只会被执行一次。
2.认识封装
⑴封装
①封装是面向对象的基本特征之一。
②private关键字:被private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他类使用,提供相应的 *** 作(get,set方法)
③this关键字:this修饰的变量用于指代成员变量,其主要作用是(区分局部变量和成员变量的重名问题)。
④封装理解: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的 *** 作和访问(private修饰和get,set方法)
⑤封装的好处以及作用: 把代码用方法进行封装,提高了代码的复用性, 通过方法来控制成员变量的 *** 作,提高了代码的安全性。
⑵实现封装
①两大步骤:
a.将不能暴露的成员函数隐藏起来,实现方法是将该成员定义为私有的,在成员定义前加上修饰符private。
b.用公共方法来暴露对隐藏成员的访问,可以给函数加上修饰符public,将该方法定义为公共的。
★注意
3.使用包
⑴包
①包中类的访问
⼀个类可以访问其所在包的所有类。访问其他包的类有如下两种⽅式访问
//使⽤import语句导⼊要访问的类,如:
import java.util.*;
import mypackage.school.Student ;
//使⽤的类名前直接添加完整的包名,如:
java.util.Date now =new java.util.Date();
mypackage.school.Student tom =new mypackage.school.Student();
*注意:指明导⼊当前包的所有类,不能使⽤类似于java. 的语句来导⼊以java为前缀的所有包的所有类。
⑵将类放在包
①要想将一个类放人包中,就必须将包的名字放在源文件的开头,包中定义类的代码之前。
②如果没有在源文件中放置 package 语句,这个源文件中的类就被放置在一个默认包(defaulf package)中。默认包是一个没有名字的包。在此之前,我们定义的所有类都在默认包中。
⑶访问包中的类
①将类用包类管理之后如何访问包中的类,要考虑以下情况:
a.在同一个包中直接用类名来访问,不用指定类所在的包
b.两个类不在同一个包中的情况
★注意:
如果一个包中的类很多,可以用"import 包名.*"导入该包中的所有类。
4.使用访问控制修饰符
⑴访问控制修饰符
⑵类的访问控制修饰符
①在不写public的情况下属于默认访问修饰,此时该类只能被同一包中的所有类识别。
②如果写了public, 该类则是一个公共类 ,可以被包内、包外的 所有类识别。
★注意:
⑶成员的访问控制修饰符
①如果将一个类定义成public类,类名和文件名必须相同,因此在一个.java文件中最多只能有一个public类。
②对于成员来说,访问控制修饰符共有4个,分别是private 、default、protected、public,示例代码如下:
③name成员为private类型,sex成员为default类型,age成员为protected类型,display成员为public类型。其中,default类型的成员前面没有任何修饰符。
④特性如下:
a. private 类型的成员只能在定义它的类的内部被访问。
b. default类型的成员可以在定义它的类的内部被访问,也可以被这个包中的其他类访问。
c. protected类型的成员可以在定义它的类的内部被访问,也可以被这个包中的其他类访问,还可以被包外的子类访问。
d. public类型的成员可以在定义它的类的内部被访问,也可以被包内、包外的所有其他类访问。
很明显,从开放的程度上讲,private< default< protected< public。
5.使用类中类
★注意:
①内部类中的成员只在内部类范围内才能使用,外部类不能像使用自己的成员变量一样使用它们。
②如果在内部类中使用this,仅代表内部类的对象,因此也只能引用内部类的成员。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)