Java基础---------------------------------------面向对象---------------------------------------
来源:互联网 发布:大数据产业分析 编辑:程序博客网 时间:2024/06/06 15:40
面向对象
导语------- 面向对象实际是一种思想, 是一个解决实际问题的一种思想,这种思想呢,就叫做面向对象.
A .面向对象思想概述
当需求单一,或者简单时,我们一步步去操作没问题,并且效率也挺高,可随着需求的更改,功能的增多,发现需要面对每一个步骤就很麻烦了,这时候就开始思索,能不能把这些步骤和更能进行封装, 封装时根据不同的功能进行不同的封装,功能类似的封装在一起,这样结构就清晰了很多,用的时候找到对应的类就可以了,这就是面向对象的思想
B.面向对象特点,
首先,面向对象是一种更符合我们思想习惯的思想,
其次,面向对象可以将复杂的事情简单化,
最后,面向对象使我们从执行者转变成了指挥者.
在实际应用中,先要去找具有所需的功能的对象来用,如果对象不存在,那么创建一个具有所需功能的对象.这样可以简化我们的代码,并且提高程序的复用性
C.面向对象的特征
1 封装的概述
a:封装概述
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
b:封装好处
隐藏实现细节,提供公共的访问方式
提高了代码的复用性
提高安全性。
c:封装原则
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问。
代码实现
class Person{ int num = 10 ; private int age = 20; //公共方法 public void show(){ System.out.println(age); System.out.println("这是公共方法"); } //私有方法 private void method(){ System.out.println("这是私有方法"); } public void function(){ method(); }}class PersonDemo{public static void main(String[] args) {//创建Person对象Person p = new Person();System.out.println(p.num);//System.out.println(p.age);// age可以在Person中访问privatep.show();//p.method();// method()可以在Person中访问privatep.function();}}
2:继承
(1):把多个类中相同的属性与功能提取到一个独立的类中,然后让其他类与这个独立的类产生关系.
这种关系叫继承
(2):java中继承格式
class 子类名 extends 父类名{}
(3):好处
A:提高了代码的复用性
B:提高了代码的维护性
C:让类与类之间产生关系,多态的前提
弊端:因为类与类之间产生了继承关系,就高耦合了
(4):继承的特点:
A:只支持单继承,不支持多继承
B:支持多层继承(继承体系)
(5):注意事项
A:子类不能继承父类的私有成员(成员变量与成员方法)
B:子类不能继承父类的构造方法.但是可以调用
C:不要为了部分功能去继承
代码实现
class Student{//成员变量private String name;private int age;//构造方法public Student(){}public Student(String name,int age){ this.name = name;this.age = age;}//成员方法 setXxx()和getXxx()public void setName(String name){ this.name = name;}public void setAge(int age){ this.age = age;}public String getName(){ return name;}public int getAge(){ return age;} //行为public void sleep(){ System.out.println("睡觉");} public void eat(){ System.out.println("吃饭");}public void show(){ System.out.println(name+"的年龄是"+age); }}class Teacher{ }class ExtendsTest{public static void main(String[] args) {//通过无参构造创对象 然后测试Student s = new Student();s.setName("小明");s.setAge(18);System.out.println("对象的名字是:"+s.getName());System.out.println("对象的年龄是:"+s.getAge()); System.out.println("----------------------");//通过带参构造创建对象Student s2 = new Student("AngleBaby",16); s2.show();}}
(3) 多态
多态:某一个对象,在不同时刻表现出的不同状态
多态的前提:
(1):要有继承关系
(2):需要有方法重写,可以没有方法重写,只是没有意义
(3):父类引用指向子类对象
父 f = new 子();
多态中的成员访问特点:
成员变量:编译看左边,运行看左边
属性:比如 父亲的年龄
代码实现
class Fu{int num = 20;public void show(){ System.out.println("show fu!");}public static void function(){ System.out.println("父亲的静态方法!");}}class Zi extends Fu{int num = 40;int num2 = 25; public void show(){ System.out.println("show zi!");}public void method(){ System.out.println("method zi!");}public static void function(){ System.out.println("子类的静态方法!");}}class DuoTaiDemo {public static void main(String[] args) {//创建父类引用指向子类对象 Fu f = new Zi();System.out.println(f.num);//20f.show();//动态绑定,f.function();}}
D类与对象的关系
程序是对现实事物的模拟化,例如超市的计费系统,银行的业务系统等等.我们学习编程语言就是为了模拟现实中的事物.我们学习的java语言最基本的单位是类,所以,我们就应该把食物用一个类来具体体现,由此,我们就得到了现实事物和类的关系,拿我们黑马的学生来说
我们每个学生都有自己的姓名、年龄、性别,这些属性,吃饭、睡觉、学习这些行为,由此,我们得到了现实中的食物和类的关系。
属性--------类
行为--------方法
例如
class Student{//定义成员变量String name;//姓名int age;//年龄String sex;//性别 //定义成员方法//学习的方法public void study(){ System.out.println("我们都很爱学习!");}//睡觉的方法 public void sleep(){ System.out.println("学习累了就睡觉,");}//吃饭的方法public void eat(){ System.out.println("学习饿了就吃饭");}}
总结一下,
类:就是一组相关的属性和行为的集合
对象:是该类事物的具体体现
在我们的java中,我们用成员变量来代表现实世界的属性,用成员方法(函数)来代表现实世界的行为
- java基础 面向对象
- Java面向对象基础
- java基础-面向对象
- java面向对象基础
- JAVA面向对象基础
- Java面向对象基础
- Java面向对象基础
- java基础----面向对象
- java 面向对象基础
- 【Java基础】面向对象
- java基础面向对象
- JAVA面向对象基础
- Java基础:面向对象
- java基础---面向对象
- Java基础--面向对象
- Java基础:面向对象
- Java基础--面向对象
- java基础--面向对象
- Java基础——Java笔记——StringBuffer类常用方法
- maven中的 dependencies 和 dependencyManagement 的区别
- [leetcode 38] Count and Say
- ORA-01858: 在要求输入数字处找到非数字字符
- container_of()
- Java基础---------------------------------------面向对象---------------------------------------
- IntelliJ IDEA开发golang环境配置
- Java中的享元模式——不可变类的valueOf
- Android登录实例——布局文件
- 项目架构 the clean architecture笔记
- C语言中的offsetof
- 安装64位Oracle,使用Pl/SQL工具遇到的问题
- Eclipse搭建Android开发环境(安装ADT,Android4.4.2)
- 3. 尚硅谷_佟刚_JavaWEB_使用 Eclipse 开发 JavaWEB 项目.wmv