- 博客(14)
- 收藏
- 关注
原创 面向对象-Object类
Object类是所有类的顶级⽗类,在Java体系中,所有类都是直接或间接的继承了Object类,Object类包含了所有Java类的公共属性和⽅法,这些属性和⽅法在任何类中均可以直接使⽤,其中较为重要的⽅法如下表所⽰:⽅法名功能说明boolean equals(Object obj)⽐较两个类变量所指向的是否为同⼀个对象,是则返trueClass getClass()获取当前对象所属类的信息,返回Class对象String toString()将调⽤toString()⽅法的对象转换成字符串
2022-09-03 09:12:01
80
原创 面向对象-关系
依赖关系public class Person {void travel( Car car ){car.run("北京");}public static void main(String[] args){new Person().travel(new Car());void run(String city){System.out.println("汽车开到"+ city);}}关联关系体现为⼀个类中使⽤另⼀个类的对象作为属性。(⼦对象)public cla
2022-09-03 09:07:42
58
原创 面向对象-重写
当⼀个⼦类继承了⼀个⽗类时,可以在⼦类中直接使⽤⽗类的属性和⽅法。如果⽗类的⽅法⽆法满⾜⼦类的需求,则可以在⼦类中对⽗类的⽅法进⾏改造,也称作重写(override)。重写是Java多态性的另⼀种体现。重写的原则重写的⽅法的签名必须要和被重写的⽅法的签名完全匹配重写的⽅法的返回值必须和被重写的⽅法的返回⼀致或者是其⼦类;重写的⽅法所抛出的异常必须和被重写⽅法的所抛出的异常⼀致,或者是其⼦类;私有⽅法不能被重写⼦类重写⽗类⽅法的过程中,可访问性只能⼀样或变的更公开。public c
2022-09-03 09:03:51
200
原创 面向对象-继承
在Java中,被继承的类叫⽗类(parent class)或超类(super class),继承⽗类的类叫⼦类(subclass)或派⽣类(derived class)。在Java中,关键字“extends”表⽰继承,后⾯紧跟⽗类的类名,如下 :public class Person {private String name;// 姓名private int age;// 年龄private String gender;// 性别……//省略get和set⽅法}class T
2022-09-03 09:02:25
72
原创 面向对象-接口
接口只能继承接口,不能继承类,且接口支持多继承(类是单继承关系)。接口继承语法如下:[修饰符] interface 接口名 extends 接口1,接口2类和类之间的继承关系用extends关键字来表示,接口和接口之间也只能是继承关系,也使用extends 关键字来表示。接口和实现类之间只能是实现关系,而且是类实现接口,用implements关键字来表示。接口的实现接口仅仅只是定义了某一类事物应该具有某些功能,但是没有提供任何实现。但在Java 8以及以后的版本中,接口是可以有默认实现的
2022-09-03 08:54:48
138
原创 面向对象-匿名对象
没有对象名称的对象 就是匿名对象。匿名对象只能使⽤⼀次,因为没有任何的对象引⽤,所以将称为垃圾,等待被GC回收。只使⽤⼀次的对象可以通过匿名对象的方式完成,这⼀点在以后的开发中将经常使⽤到。
2022-09-03 08:37:22
85
原创 面向对象-构造方法设计建议
建议⾃定义⽆参构造方法,不要对编译器形成依赖,避免错误发⽣。当类中有⾮常量成员变量时,建议提供两个版本的构造⽅法,⼀个是⽆参构造方法,⼀个是全属性做参数的构造方法。当类中所有成员变量都是常量或者没有成员变量时,建议不提供任何版本的构造。⽅法的重载:⼀个类, 可以存在多个构造方法 :参数列表的长度或类型不同即可完成构造方法的重载。构造⽅法的重载 ,可以让我们在不同的创建对象的需求下, 调⽤不同的⽅法来完成对象的初始化!
2022-09-03 08:36:55
61
原创 面向对象-构造法(构造器)
1. 概述:作⽤:⽤于对象初始化。执⾏时机:在创建对象时,⾃动创建。特点:所有的Java类中都会⾄少存在⼀个构造⽅法;如果⼀个类中没有明确的编写构造⽅法, 则编译器会⾃动⽣成⼀个⽆参的构造⽅法, 构造⽅法中没有任何的代码;如果⾃⾏编写了任意⼀个构造器, 则编译器不会再⾃动⽣成⽆参的构造⽅法。2. 定义格式:与普通⽅法基本相同, 区别在于: ⽅法名称必须与类名相同, 没有返回值类型的声明 !例如:public class Demo3{public static void
2022-09-02 11:15:30
63
原创 面向对象-方法区和pc寄存
存放的是- 类信息- 静态的变量- 常量- 成员⽅法⽅法区中包含了⼀个特殊的区域 (常量池),存储的是使⽤static修饰的成员。PC寄存器保存的是 当前正在执⾏的 JVM指令的 地址 !在Java程序中, 每个线程启动时, 都会创建⼀个PC寄存器 !5. 本地⽅法栈:保存本地(native)⽅法的地址 !
2022-09-02 11:12:21
79
原创 面向对象-创建对象内存分析
栈:存储的是: 基本数据类型的数据以及引⽤数据类型的引用!• 例如: int a =10; Person p = new Person();• 10存储在栈内存中 , 第⼆句代码创建的对象的引⽤(p)存在栈内存中。Java栈的区域很⼩ , ⼤概 2M 左右 , 特点是存取的速度特别快。栈存储的特点是:先进后出。存储速度快的原因:• 栈内存, 通过 '栈指针' 来创建空间与释放空间 !• 指针向下移动, 会创建新的内存, 向上移动, 会释放这些内存 !•
2022-09-02 11:10:32
84
原创 面向对象-属性与方法既对象的使用
//属性定义格式:数据类型属性名;//属性定义并赋值的格式:数据类型属性名 = 初始化值;//⽅法定义格式:权限修饰符返回值类型⽅法名(形式参数列表) {//⽅法体return 返回值;}对象⼀个类要想真正的进⾏操作,则必须依靠对象,对象的定义格式如下:类名称对象名称 = new 类名称();如果要想访问类中的属性或⽅法(⽅法的定义),则可以依靠以下的语法形式:访问类中的属性:对象.属性;调⽤类中的⽅法:对象.⽅法(实际参数列表);
2022-09-02 11:07:04
66
原创 面向对象-类与对象,
1. 两者关系:类:表⽰⼀个 共性的产物,是⼀个 综合的特征。对象:是⼀个 个性的产物,是⼀个 个体的特征。(类似⽣活中的图纸与实物的概念。)类必须通过对象才可以使⽤,对象的所有操作都在类中定义类由属性和⽅法组成:· 属性:就相当于⼈的⼀个个的特征· ⽅法:就相当于⼈的⼀个个的⾏为,例如:说话、吃饭、唱歌、睡觉2. 类的定义格式:class 类名称{成员属性成员⽅法}
2022-09-02 11:04:07
48
原创 面向对象-面向对象思想
面向对象(Object Oriented)是软件开发⽅法。⾯向对象的概念和应⽤已超越了程序设计和软件开发,是⼀种对现实世界理解和抽象的⽅法,是计算机编程技术发展到⼀定阶段后的产物。 ⾯向对象是相对于⾯向过程来讲的,指的是把 相关的数据和⽅法组织为⼀个整体 来看待,从更⾼的层次来进⾏系统建模,更贴近事物的⾃然运⾏模式。⾯向过程到⾯向对象思想层⾯的转变:⾯向过程关注的是执⾏的过程,⾯向对象关注的是具备功能的对象。⾯向过程到⾯向对象,是程序员思想上 从执⾏者到指挥者的转变。2. 三⼤思想:面向对象
2022-09-02 11:02:10
111
原创 面向对象设计其他原则
封装变化少用继承 多用组合针对接口编程 不针对实现编程为交互对象之间的松耦合设计而努力类应该对扩展开发 对修改封闭(开闭OCP原则)依赖抽象,不要依赖于具体类(依赖倒置DIP原则)密友原则:只和朋友交谈(最少知识原则,迪米特法则)说明:一个对象应当对其他对象有尽可能少的了解,将方法调用保持在界限内,只调用属于以下范围的方法:该对象本身(本地方法)对象的组件 被当作方法参数传进来的对象 此方法创建或实例化的任何对象别找我(调用我) 我会找你(调用你)一个类只有一个引起它变
2022-09-02 10:50:26
52
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人