Java面向对象编程

 一、添加属性

1.静态修饰符static

在编写过程中,有些类成员与类中对象无关,它完全独立于该类的任何对象,比如说公司员工人数但是通常情况下,类成员必须通过对象访问,因此需要创建这样一个成员。如果一个成员被声明为static,他被保存在类的内存区的公共存放单元中,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象。

2.static修饰初始化块

初始化块是类中可以出现的又一重要成员。初始化块没有名称也没有标识,因此无法通过类和对象来调用,只在创建对象时自动执行并且在执行构造方法之前执行。语法格式如下:

【修饰符】{

//初始化块语句

}

注:初始化块的修饰符只能是static,被static修饰的初始化块称为静态初始化块

例:代码如下

Public class student{
Private String ID=“”;
Private String name=””;
Private String sex=””;
Public static int num;
Private int age;
Static{
System.out.println(“静态初始化块”);
num=0;//num是静态变量放,在静态初始化块中初始化
}
{
System.out.println(“初始化块”);
age=18;//各个对象的age属性设值为18,且为实例属性提取到初始化块中
}
public student(String id,String name){
this.id=id;
This.name=name;
Num++;
}
public String toString(){
Return(“此学生信息为:学号”+id+“姓名”+name+“性别”+sex+“年龄”+age);
} 
public static void main(String[] args){
Student s1=new student(“1301”,“mary”,“female”);
System.out.println(s1.toString());
Student s2=new student(“1302”,“rose”,“female”);
System.out.println(s2.toString())
System.out.println(“当前学生人数为:”+student.num);
}
}

代码介绍:

静态初始化块比普通初始化块先执行,静态初始化块在类加载的时候执行,普通初始化块在创建对象调用构造方法前执行。

3.static修饰成员变量

用static修饰符修饰的数据成员是不属于任何一个类的具体对象,而属于类的静态数据成员。静态数据成员是类固有的,可以通过“类名。成员变量名”访问,其他成员变量仅仅被声明,只有等到生成实例对象后才存在

4.static修饰成员方法

在声明static的方法时,有以下几个方面的限制:

第一,仅能调用其他的static方法;

第二,只能访问static数据;

第三,不能以任何方式引用this或super

若需要通计算来初始化static变量,可以声明一个static块。Static块仅在该类加载时执行一次。

静态初始化器与构造函数的区别: 构造函数是对每个新创建的对象初始化,而静态初始化器是对每个类进行初始化 构造函数是在用new运算符产生新对象时由系统自动执行,而静态初始化器则是在它所属的类加载入内存时由系统调用运行的 不同于构造函数,静态初始化器不是方法,没有方法名,返回值和参数列表。

二、抽象类

1.抽象类由来

当一个类被生命为abstract时,这个类被称为抽象类 所谓抽象类就是没有具体实例对象的类 抽象类是它所有子类的公共属性的集合 使用抽象类的一大优点就是可以利用这些公共属性来提高开发和维护程序的效率

2.final修饰符

最终类,最终属性,最终方法,终结器 最终类 如果一个类被final修饰符所修饰和限定,说明这个类不可能拥有子类 最终属性 final就是用来修饰常量的修饰符,一个类的成员变量如果被声明为final,那么它的取值在程序的执行过程中都不会改变,也就是一个常量

3.用final修饰符说明常量时:

需要说明常量的数据类型 需要同时指出常量的具体取值 因为所有类的对象的常量成员,其数值都固定一致,为了节省空间,常量通常都被声明为static

final修饰符所修饰的类方法,是功能和内部语句都不能被更改的最终方法,即是不能被当前类的子类重载的方法 final方法固定所对应的具体操作,防止子类对父类关键方法的错误的重定义,保证了程序的安全性和正确性

4.所有已被private修饰符限定为私有的方法,以及所包含在final类中的方法,都被缺省的认为是final的终结器 终结器是回收对象时执行的方法 protected void finalize(){} 终结器是一个名为finalize的方法,没有产生列表和返回值volatile修饰符 被volatile修饰的类的属性可能同时被几个线程控制和修改 通常用来修饰受外部输入的属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值