面向对象程序设计基础(上)最新.pptVIP

  • 0
  • 0
  • 约4.11千字
  • 约 130页
  • 2024-01-24 发布于广西
  • 举报

面向对象程序设计基础(上);抽象;对象;封装-信息隐藏;封装-信息隐藏;在程序中定义你抽象出的类;类定义—属性说明;类定义—方法说明;对象方法的含义;对象的几个特征;数据的隐藏-封装;;public正好和private相反,在任何地方都能访问;protected是在本包内能访问,而在包外只有它的子类能访问。

如图,package1这个包中有一个A类,它有一个成员变量a,用protected访问控制符进行修饰。

;如图,在本包中另一个类继承自A,它是可以访问A的这个成员变量的。如果是本包中的一个普通类(也就是不继承自A),也是可以访问A的成员变量的。

;;但是在别的包中的子类,也就是继承自A的类,访问A的成员变量是可以的。

;默认(包访问权限)。

如图,还是package1中的A类的成员变量a,这一次什么也不加。

;和protected一样,只要是同一个包下的类,不管是子类还是其它普通的类,都可以访问A的这个成员变量。;在另一个包中的类,如果是普通类,和protected一样,是不能访问A类中的这个成员变量的。

;在另一个包中的类,即使是子类,也是不能访问A类中的这个成员变量的。这一点和protected不一样。

;总结一下:

;;方法定义及参数传递;方法的定义规则;方法的参数;引用类型

值传送;值传递;引用传递指的是在方法调用时,传递的参数是按引用进行传递,其实传递的引用的地址,也就是变量所对应的内存空间的地址。;;this关键字;this;this例;this关键字;this;方法的重载;;系统方法的重载示例;示例—StaticClass类;示例—TestOverloading类;方法的重载和可变参数;可变参数示例;构造方法(器)的声明和使用;构造方法定义;构造方法使用;示例:;publicclassTest{

publicstaticvoidmain(String[]args){

Employeet=newEmployee(“张三”,20,3500);//引用类型变量

System.out.println(t.say());

t.Name(李四);

t.age(40);

t.salary(25);

System.out.println(t.say());

}

};构造方法的重载;构造方法的重载;构造方法的重载;构造方法之间的调用;构造方法之间的调用;对象在内存中的结构模型;对象初始化三步曲;对象在内存中的结构模型;构造和初始化对象;a.在??栈中为引用变量分配空间;b.在堆中为对象分配内存;c.执行属性的显式初始化;d.执行构造器;e.由new运算符返回对象引用值;f.将对象引用值赋给引用变量;类的继承;继承;UML类图;继承;继承—增加属性和方法;类的继承-调用父类构造(器)方法;使用super关键字;调用父类的构造方法;调用父类构造方法;classEmployee{

Stringname;

intage;

floatsalary;

//publicEmployee(){}

publicEmployee(Stringname,intage){

this.name=name;

this.age=age;

}

publicStringgetEinfo(){

returnname++age++salary;

}

};;;类继承—特点;类继承树;继承特点;示例—Employee类;示例—Manager类;示例—Test类;类继承—抽象类、抽象方法;抽象与抽象类;抽象类的成员;抽象方法;示例—Pet类;示例—Bird类;类继承—最终类、最终方法;抽象类与最终类;抽象类与最终类;最终方法;类继承—属性覆盖;;;属性的覆盖;属性的覆盖;属性覆盖的示例;类继承—方法覆盖;方法覆盖(overwriting)概念;;方法覆盖-抽象方法的实现;示例;示例;系统类中方法覆盖示例;classtest{

publicstaticvoidmain(String[]args){

Myclassmc1=newMyclass(wang);

Myclassmc2=newMyclass(wang);

if(mc1.equals(mc2))/

文档评论(0)

1亿VIP精品文档

相关文档