-----------------------面向对象基础------------------------------------
方法(函数)html
{java
(c#p10为主,p27;javap96)+资料,讲以下问题:
一、类概念[类、对象]程序员
二、面向对象基本特征(封装、继承、多态)编程
}c#
三、类的主要构成(属性和方法)ide
四、程序中如何实现类:函数
类格式(类头、成员变量、成员方法,实例化)this
例:Person类(姓名,年龄,show_Me)(+set_Me)(+不一样文件)
(Person类内存分配)
例5-1 学生类(仅java)
(c#提一下public)
战斗程序spa
//java(源代码)设计
//c#(源代码)
变量做用域(c#略,见p76)
P103直接讲例5-2(仅java)
重载
例:两、三个数最大值
p128,例5-14(仅java,多个数的和)
构造方法
介绍构造方法的意义,构造Person
P108例5-6,知识点:构造重载(长方体,设各边长,算体积)
掷色子程序(仅C#)
静态
{ //仅java
静态方法:P112例5-7
静态属性:提一下
看p111-112页,1,2
注:java里静态内容实际上能够被对象访问,但这不是通用写法,其余语言并不容许。应尽可能使用类来访问静态内容。
}
{
//C#
静态属性+静态方法
随手举例
}
---------------面向对象进阶----------------------------
继承例:球继承圆的半径、面积。代码
修饰符(JAVA看看视频,17分28秒,C#P12页第三点)
this和super
P119例5-9(this),例5-10(主要讲super),例5-11(this和super综合)
子类对象是能够赋值给父类变量的(例:球对象赋值给圆变量)
{//仅java
子类与父类具备同名方法时:默认为方法重写
例:Person1继承Person类,内存初始化
简单子类重写父类方法:P129,例5-15
final修饰方法可阻止重写
子类重写父类方法:P126例5-13
}
{//仅C#
具备同名方法时内存中的状态:默认为屏蔽
例:Person1继承Person类,内存初始化
以圆球为例说明方法的屏蔽与重写
一、父类受权【能够(virtual),不能够(无,即屏蔽)】
二、子类是否重写【重写(override),不重写(new)】
}
---------------团队编程内容--------------------------
抽象类与抽象方法(必须一块儿用,规定了必须重写方法)
通常用于开发小组内部讨论概念的时候,一般做为后续开发的标准和依据。
P124例5-12
例5-12扩展讲解:
建抽象类的时候,注意以下图设置(免得手输)
抽象类“形状”代码:
public abstract class Shape { abstract void getArea(); }
实现类“圆”代码:
public class Circle extends Shape { double r; Circle(double x) { r=x; } void getArea() { System.out.println("圆形面积是:"+3.14*r*r); } }
实现类“矩形”代码:
public class Rectangle extends Shape { double c,k; Rectangle(double x,double y) { c=x; k=y; } void getArea() { System.out.println("矩形面积是:"+c*k); } }
main代码:
public static void main(String[] args) { // TODO Auto-generated method stub Circle cc=new Circle(5.6); Rectangle rt=new Rectangle(8, 6); Shape s; cc.getArea(); rt.getArea(); s=cc; s.getArea(); s=rt; s.getArea(); }
对比这个例子和书上的例5-12,看看有什么不一样。
差别最大的是main函数。声明的抽象类变量能够指向任何一个它派生的具体类。道理和继承相同。因而可知抽象类的做用(可用于检验的类设计模版)
接口(通常用于项目整体设计时,跨开发小组统一开发标准):
例:龟车赛跑