0
点赞
收藏
分享

微信扫一扫

面向对象(2)

泠之屋 2022-04-29 阅读 69
java

面向对象(2)

静态变量和静态函数

静态变量

让各对象共有的内容只用一个空间保存。

方法:在其定义前加上关键字static。

For example:

Class Customer{

String name;

Static String bankName;

}

静态变量可以通过“对象名.变量名”来访问。也可以用“类名.变量名”来访问,一般情况下推荐用“类名.变量名”来访问,而非静态变量不能用其访问。静态变量在类被载入时创建,只要类存在,静态变量就存在,不管对象是否被实例化。

作用:

保存跨对象信息,存储对象个数。

静态函数

方法:在普通函数的定义前加上关键字static。

For example:

Static void setBankName(String bankName){

Customer.bankName=bankName;

}

静态函数通过“类名.函数名”也可以通过“对象名.函数名”来访问,推荐用前者。

在静态函数调用是对象还没有创建,因此在静态函数中不能直接访问类中的非静态成员变量和成员函数,也不能使用关键字this。

静态代码块

对所有对象的共同信息进行初始化,并对所有对象只执行一次的机制。

For example:

Static{

bankName=香港银行

System.out.println(静态代码块执行);

}

当类被载入时,静态代码块被执行,且只被执行一次,静态代码块经常用来经行类属性的初始化。

认识封装

封装是面向对象的基本特征之一。

使用封装来完善对象的使用,在赋值时判断是否符合常识或其他条件。

方法:

将不能暴露的成员隐藏起来,在定义前加上修饰符private

用公共方法来暴露对隐藏成员的访问,给函数加上修饰符public,将该方法定义为公共的。

For example:

class Customer {

String name;

String sex;

private int age;

public void setAge(int age){

if(age<0||age>100){

System.out.println("age无法赋值”);return;

}

this.age = age;

}

public int getAge(){

return this.age;

}

}

public class EncTest2 {

public static void main(String[] args){Customer zhangsan = new Customer();

Zhangsan.setAge(25);

System.out.println(zhangsan,age=+zhangsan.getAge)

}

}

私有成员只能在定义它的类的内部被访问,在类的外部不能被访问,一般情况下,可以将成员变量定义为private的,通过public函数(方法)对其进行访问。例如要给一个成员赋值,可以使用setter函数,如上面的setAge函数;要获得该变量的值,可以使用getter函数,如上面的getAge函数,private和public都是访问区分符。

使用访问控制修饰符

public class Customer{

String name;

String sex;

Int age;

}

在不写public的情况下属于默认访问修饰,此时该类只能被同一包中的所有类识别,如果写了public,该类则是一个公共类,可以被包内,包外的所有类识别

在一个Java文件中最多只能有一个public类,所以类名和文件名必须相同。

成员的访问控制修饰符

对于成员来说,访问控制修饰符共有4个,分别是privatedefooltprotetedpublic,示例代码如下。

public class Customer{

private String name;

String sex;

protected int age;

public void display( ) {}

}

name成员为private类型,sex成员为default类型,age成员为protected类型,display成员为public类型。其中,default类型的成员前面没有任何修饰符。

其特性如下。

(1) private类型的成员只能在定义它的类的内部被访问。

访问。定义它的类的内部被访问,也可以被这个包中的其他类

(3) protected类型的成员可以在定义它的类的内部被访问,也可以被这个包中的其他类访问,还可以被包外的子类访问。关于子类,将在后面章节讲解。

(4)public类型的成员可以在定义它的类的内部被访问,也可以被包内、包外的所有其他类访问。

很明显,从开放的程度上讲,private<default<protected<public.

继承

1.但每个子类又都有自己独特的属性。

2.子类就是一个父类,因为班长也是学生,小组长也是学生,所以子类也是父类。

关系就是:is-a(子类 is a 父类)

继承性的三个特点
1.JAVA语言是单继承的,直接父类只能有一个
2.JAVA语言可以多级继承
3.一个父类可以拥有多个子类

父类定义格式

  public class 类名称()

子类定义格式

  public class 类名称 extends 父类名称()

举报

相关推荐

0 条评论