面向对象

面向对象

面向对象:OO;
面向对象的分析:OOA;
面向对象的设计:OOD;
面向对象的编程:OOP;
1.类和对象
1)现实生活中存在很多的对象(东西),基于对象抽出了类;
2)对象:软件中真实存在的单个的个体(东西);
类:类型(类别),代表一类个体,是我们自己设计出来的数据类型(引用类型)
3)类是对象的摸板,对象是类的具体的实例;
如:月饼是对象,月饼模子就是类。
4)类中包含:
4.1)对象所共有的属性/特征…………………变量
4.2)对象所共有的动作/行为…………………方法
5)一个类可以创建多个对象
语法:数据类型-引用类型变量-指向-对象
如:Student zs=new Student();
2.static的使用
2.1)静态变量:
2.1.1)由static修饰;
2.1.2)属于类,存储在方法区中,只有一份;
2.1.3)常常通过类名点来访问;
2.1.4)何时用:所有对象所共享的数据(图片、视频、音频等)。
使用static可以修饰变量、方法和代码块。
在这里插入图片描述

2.2)静态方法:
2.2.1)由static修饰;
2.2.2)属于类的,存储在方法区中,只有一份;
2.2.3)常常通过类名点来访问;
2.2.4)静态方法中没有隐式的this传递,所以静态方法中不能直接访问实例成员;
2.2.4)何时用:方法的操作与对象无关。

2.3)静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。
在这里插入图片描述

如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量。
在这里插入图片描述

2.4)在普通成员方法中,则可以直接访问同类的非静态变量和静态变量。
在这里插入图片描述
2.5)静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。
在这里插入图片描述

2.6)静态初始化块:
2.6.1)由static修饰;
2.6.2)在类被加载期间自动执行,因为类只被加载一次,所以静态块只执行一次;
2.6.3)何时用:初始化、加载静态资源(图片、音频、视频等)。
特别注意:
静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
在这里插入图片描述

通过输出结果,我们可以看到,程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块。

3.static和final常量:
利用率高。
1)必须声明同时初始化;
2)通类名点来访问,不能被改变;
3)建议:常量名所有字母都大写,多个字母之间用_来分隔;
4)编译器在编译时会将常量直接替换为具体的值,效率高;
5)何时用:数据永远不变,经常使用。

4.抽象方法
1)由abstract修饰;
2)只有方法的定义,没有具体的实现(连大括号都没有)。

5.抽象类
1)由abstract修饰;
2)包含抽象方法的类必须是抽象类;
3)抽象类不能被实例化;
4)抽象类是需要被继承的
4.1)派生类重写所有抽象方法(变不完整为完整)
4.2)也声明为抽象类(不常用)
5)抽象类的意义:
5.1)封装派生类所共有的属性和行为(代码复用);
5.2)为所有派生类提供统一的类型(向上造型);
5.3)可包含抽象方法,为所有派生类提供统一的入口(能点出来);派生类的具体实现不同,但入口是一致的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值