Java对象
来源:互联网 发布:维斯布鲁克生涯数据 编辑:程序博客网 时间:2024/05/16 10:14
提到Java对象可有的说了,Java从设计之初,就根据对象思想进行设计,他是java根基。对象主要围绕三个方面:封装、继承、多态。封装简单地说就是对对象进行抽象,将对象的属性和方法包装到块,提到封装不得不说的是访问权限,继承是对对象的进一步抽象,比如人、男人、女人,人是男人和女人的共同点,为了不重复的工作,提高代码的重用性,因此将人单独抽象,男人和女人再去继承他,多态的提出是为了提高代码的扩展性,先做一个框架,再去实现框架,多好的思想,方便了你我他,又能使代码重用。总之,对象是一种思想,对象语言是用语言进行描述对象,是围绕抽象、重用性对对象进行语法包装。
类与对象:类是对事物的描述,对象是具体的事物
对象语法
- 局部变量和成员变量
- 作用范围
- 局部变量:方法内 (注意Java中没有静态局部变量)
- 成员变量:类中,对整个类有效,成员变量分静态成员变量和非静态成员变量,静态成员变量是类加载后可用,非静态变量是对象可用
- 存储空间
- 局部变量:栈中
- 成员变量:堆内存(静态的成员变量在方法区,非静态的成员变量在堆内存中)
- 初始化值
- 局部变量:在使用前必须手动给值
- 成员变量:Jvm默认初始化值
- 作用范围
- 构造函数
- 用途:用于给对象中的属性进行初始化
- 特点:不定义空参数的构造函数,系统会自动给一个空参数构造函数
- 重载构造函数,是根据参数列表来区分那个构造函数
- this关键字
- 代表当天对象的引用,使用时,谁调用方法,this代表谁
- 什么时候使用this
- 当局部变量和成员变量重名时,可以用this进行区分
- 构造函数中使用this,this()必须放到第一行,表示调用空参的构造函数
- 写功能时,可能用到this
- static 关键字
- 静态的意思,可以修饰类的成员(成员变量、成员方法)
- 特点
- 随类的加载而加载
- 优先于对象存在
- 被多个类共享
- 可以通过类直接访问
- 注意事项
- 静态方法只能访问静态成员
- 今天方法中不能使用this,super关键字
- 代码块
- 静态代码块:类加载时调用,只调用一次,主要用与不能实例化的类,进行初始化
- 构造代码块:new一个对象时调用先于构造方法,主要用于当有多个构造方法时,减少代码量
- final修饰符
- final可以用来修饰类:被final修饰的类不能被继承
- final用来修饰成员变量:被修饰的成员变量为常数,不能更改
- final可以用来修饰成员方法:被修饰的成员方法不能重写
- 抽象类
- 抽象类的特点
- 如果一个类有了抽象方法,这个类就是抽象类,抽象类里可以没有抽象方法
- 抽象类不能被实例化,不能创建对象
- 如果一个类继承了抽象类,要么重写所有的抽象方法,要么是抽象类
- 抽象关键字abstract不可以与哪些关键字共存(private:私有化,外部无法直接访问;static:这个时候抽象方法可一直通过类名访问,这可不好;final:final修饰的方法不能被重写,冲突了)
- 抽象类的特点
- 接口(interface)
- 接口是功能的扩展
- 接口解决了java中只能单继承问题,接口可以多实现
- 接口中的成员:成员变量:只能是常数,默认修饰符public static final;成员方法:默认修饰符是public abstract
封装
- 访问权限
下面用表格区分四种访问权限的异同:
继承
- 好处:提高了代码的复用性
- 特点:Java只支持单继承
- 注意:
- 子类不能直接访问父类中的私有的属性和行为
多态
- 事物的多种存在形式
方法的重载(静态多态)
方法的重写(动态多态) - 多态成员的特点
Parent c = new Child()- 成员变量:编译和运行都看Parent
- 非静态方法:编译时看Parent,运行时看Child
- 静态方法:编译和运行都看Parent
Parent p = new Child();p.speak(); //这里出输出的是“I'm Child”public class Parent { public void speak() { System.out.println("I'm Parent"); }}public class Child extends parent { public void speak() { System.out.println("I'm Child"); }}
0 0
- Java对象
- Java对象
- java对象
- JAVA-对象
- java对象
- Java 对象
- Java对象
- java对象
- Java 对象
- java对象
- java对象
- java对象
- java对象
- Java 对象
- Java对象
- java对象
- Java对象
- java----Java面向对象
- jsPlumb Demo源码分析
- linux 磁盘分区、格式化、目录挂载
- 初学Grand Central Dispatch后的初步梳理
- const-static精讲
- 数据库中乱码问题
- Java对象
- JavaScript 开发者必备的10款 Sublime Text 插件
- 单源最短路径整理
- sqlserver复制数据到另一张表中
- Nginx 常见应用技术指南[Nginx Tips] 第二版
- 台湾国立大学机器学习技术.听课笔记(第一讲):Support Vector Machine
- org.xml.sax.SAXParseException元素内容必须由格式正确的字符数据或标记组成。
- 第一个Angularjs前瑞框架项目
- hdoj 4265 Science! 【二分 + 最大流】【求最大完美匹配数并输出完美匹配】