S2/JAVA/01-抽象和封装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了S2/JAVA/01-抽象和封装相关的知识,希望对你有一定的参考价值。

常量:在C#中,用常量来存储不变的数据,常量在程序运行过程中不会发生变化,只能被引用,不能被重新赋值,也就是只能在定义时修改其值。Java中同样也有苍凉,使用final关键字修饰,并且常量名通常都大写。

 

类名、属性名、方法名及常量名的命名规范如下:

1、类名有一个或几个单词组成,每个单词的第一个字母都大写,如DogStringBuffer

2、属性名和方法名有一个或几个单词组成,第一个单词首字母小写,其他单词首字母大写,如healthstuNameprintln()getMessage()

3、常量名由一个或几个单词组成,所有字母大写,如PISEX_MALE

 

构造方法是一个特殊的方法,没有Penguin()方法时,系统会提供一个空的Penguin()方法.

 

构造方法的名称和类名相同,没有返回值类型。构造方法的主要作用就是在创建对象时执行一些初始化操作,如给成员属性赋初值。

 

构造方法的重载:无参构造方法--------两个参数的构造方法---------四个参数的构造方法。方法名相同,参数列表不同,这称为构造方法的重载。

 

JavaC#一样,在没有给类提供任何构造方法时,系统会提供一个无参的方法体为空的默认构造方法。一旦提供了自定义构造方法,系统将不再提供这个默认构造方法。如果要使用它,程序员必须手动添加。

 

Java中,对象的销毁不需要程序员来做,而是通过Java虚拟机的垃圾回收器在后台自动实现的,故只学习创建对象而不用学习如何销毁对象。

 

如果同一个类中包含了两个或两个以上的方法,他们的方法名相同,方法参数个数或参数类型不同,则称该方法被重载了。成员方法和构造方法都可以进行重载。

 

方法重载的判断依据:

1、必须在同一个类里。

2、方法名相同。

3、参数列表(方法参数的个数或参数类型)不同。

4、与方法返回值和方法修饰符没有任何关系。

 

在使用this调用自身的其他构造方法时,只能作为第一条语句。

 

Static可以用类修饰属性、方法和代码块。Static修饰的变量属于这个类所有,即由这个类创建的所有对象共用同一个static变量。通常把static修饰的属性和方法称为类属性(类变量)、类方法。不使用static修饰的属性和方法属于单个对象,通常称为实例属性(实例变量)、实例方法。

 

在加载类的过程中,完成静态变量的内存分配,再执行静态块,两者是在创建对象之前执行的。

雷属性、类方法可以通过类名和对象名访问,实例属性、实例方法只能通过对象名访问。

类方法只能访问类属性和其它类方法。

 

静态方法中不能是使用thissuper关键字。

 

静态常量:static final String SEX_MMALE="Q";

 

在方法里不能定义Static变量,也就是说,类变量不能是局部变量。

 

构造方法没有返回值类型。如果有,则不是构造方法,而是和构造方法同名的成员方法。

 

private:成员变量和方法只能在其定义的类中被访问,具有类可见性。

默认:成员变量和方法只能被同一个包里的类访问,具有包可见性。

Protected:可以被同一个包中的类访问,被同一个项目中不同包的子类访问

public:可以被同一个项目中的所有类访问,具有项目可见性,这是最大的访问权限。

 

使用this调用重载的构造方法,只能在构造方法中使用,必须是构造方法的第一条语句。

 

因为this在对象内部指代自身的引用,所以this只能调用实例变量、实例方法和构造方法。

This不能调用类变量和类方法,也不能调用局部变量。

以上是关于S2/JAVA/01-抽象和封装的主要内容,如果未能解决你的问题,请参考以下文章

封装 继承 多态 抽象的一点点理解

封装与抽象?

数据抽象和封装的理解

TypeScript,面向对象,类、构造函数、继承、抽象类、接口和封装

17_JavaSE_抽象类和封装

详细的解释下类的封装性,抽象性,继承性和多态性。