1.面向对象编程:
程序 = 对象 + 消息 //面向过程:程序 = 算法 + 数据
2.对象
对象的特征分为静态特征和动态特征两种。静态特征对象的外观、性质、属性等,动态特征指对象具有的功能、行为等
类名 对象名 = new 类名();
Person p;//声明一个Person类,,在栈空间声明
p = new Person();//用new类实例化Person的对象p,在堆空间中开辟内存
或者
Person p = new Person();//声明并直接实例化
使用
p.name;//访问属性
p.age = 10;//直接赋值给age
p.talk();//访问方法
对象的比较: == 判断值是否相同,equals()方法用于比较对象的内容是否一致。
3.类
将具有相同属性及行为的一组对象成为类
声明
class 类名{
//类的成员变量
//类的方法
}
定义
class 类名{
数据类型 属性;
返回值类型 方法名(参数,参数,...){
程序语句
return 表达式;
}
}
4.封装性
将尽可能对外界发布一个有限的界面,而将其细节隐藏起来,
342B450F-F9D1-47E5-869E-C1CA135CAD3F.png5.继承性
如果类B具有类A的全部属性和方法,而且又具有自己特有的某些属性和方法,则把类称作一般类,而B称为特殊类,B类 继承 A类,具有A的所有属性方法,又拥有自己的属性和方法
BF555814-2BC7-4A52-A21A-38C1FD33AA86.png
6.多态性
方法重载:在一个类中,允许多个方法使用一个名称,数据类型不同,允许具有相同的方法名称但完成功能不同
方法重写:子类与父类允许有相同的变量名称,但数据类型不同,允许具有相同的方法名称,但完成的功能不同。
(OC中):子类必须重写父类方法,父类指针指向子类对象
7.super的使用
1.用super调用父类的构造方法,只能放在程序第一行
2.super同时可以调用父类的属性和方法
super.父类的方法();
super.父类的属性;
privite 修饰的不能被子类通过点语法所访问
8.覆写:所谓重载既是方法名称相同,但是却可在不同的场合做不同的事。当一个类集成一个父类,而子类中的这个方法与父类中的方法名称参数个数、类型等完全一致时,就称子类中的这个方法覆写了父类中的方法。同理,如果子类重复定义了父类中的已有属性,则称此子类中的属性覆写父类中的属性
9.抽象类:
1.抽象类和抽象方法都必须用abstract关键字修饰
2.抽象类不能被直接实例化,也就是不能直接用new关键字去产生对象。
3.抽象方法只能声明,而不需要说实现
4.含有抽象方法的类必须被声明为抽象类,抽象类的子类不许覆写所有的抽象方法后才能被实例化,否则这个子类还是一个抽象类
10.接口的基本概念:
接口中的数据成员必须初始化,且数据成员均为常量。
接口里的方法必须全部声明为abstract,也就是说,接口不能像抽象类一样保证有一般的方法,必须全部是“抽象方法”
interface 接口名称
{
final 数据类型 成员名称 = 常量;
abstract 返回值得数据类型 方法名称 (参数。。。)‘
//抽象方法,注意在抽象方法里没有定义方法主体
}
接口的实现语法
//class 类名称 implements 接口 A,接口 B
public interface Persons {
String name = "hello";
int age = 10;
public abstract String talk();
}
class Student implements Persons{
// 覆写talk()方法
public String talk(){
return "22"+this.name+"11"+this.age;
}
}
11.Object类
Java中所有类的父类,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类就默认继承object类,因此,Object类是Java类层中的最高层类,是所有类的超类。换句话说,Java中任何一个类都是它的子类。由于所有的类都是有object类衍生出来的,所以Object类中的方法适用于所有类
网友评论