[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
其他
> 详细
面向对象基础知识
时间:
2019-01-25 19:46:01
阅读:
166
评论:
0
收藏:
0
[点我收藏+]
c语言:面向过程;c++面向对象
同类型变量放在一起组成数组
类
属性
方法
构造方法。
用于创建这个类的对象。无参的构造方法可以由系统自动创建。
构造器也叫构造方法
constructor,用于对象的初始化。
注意
:手动添加的构造器,系统不会自动创建,要自己加上空构造器,
要点
通过
new关键字调用。
构造器虽然有返回值,但是不能定义返回值类型。不能在构造器里使用
return返回某个值。
如果我们没有定义构造器,编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加。
构造器的方法名必须和类名一致。
public point(double_x,double_y){
x=_x;
y=_y;
}
重载
方法名相同,参数不同。
构造方法的第一句总是
super()
this表示创建好的对象。
程序入口
(主函数)
new一个对象
内存分析
java虚拟机内存分3个区域
栈
stack,
栈描述的是方法执行的内存模型每个方法被调用都会创建一个栈帧
(存储局部变量操作数,方法出口等。)
JVM为每个线程创建一个栈。用于存放该线程执行方法的信息。(实际参数,局部变量等。)
栈属于线程私有,不能实现线程间的共享。
在的存储特性是,
”先进后出,后进先出。”
栈是由系统自动分配,速度快。栈是一个连续的内存空间。
堆
heap,
堆用于存
储创建好的对象和数组。
(数组也是对象。)
jvm只有一个堆被所有线程共享。
堆是一个不连续的内存空间。分配灵活,速度慢。
方法区
method area又叫静态区特点如下。
jvm只有一个方法区被所有线程共享。
方法区实际也是堆只是用
于存储类
,常量相关的信息。
用来存放程序中永远是不变或唯一的内容。
(类信息。Class对象。静态变量字符串常量。)
对象
创建的过程
1.分配对象空间,并将对象成员变量初始化为零或空。
2.执行属性值的显式初始化。
3. 执行构造方法。
4.返回对象的地址给相关的变量。
this
本质建好对象的地址。
2.当程序出现二义性的时候。用this来区分成员变量和局部变量。
3.this可以调用其他构造器。构造器的调用必须放在第一句。
this不能用于static方法中。
静态
static关键字
在类中用
static声明的成员变量为静态成员变量,也称为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。
static修饰的成员变量和方法,从属于类。普通变量和方法从属于对象。
包机制
非注释性语句的第一句用
package+包名
包名
:域名倒着写。再加上项目名,模块名。
通过
import导入包中的类
import * 降低编译速度
静态导入
import static system.lang.Math
继承
extends 要继承的类名-------继承所有的属性和方法
Java接口有多继承,类只有单继承,c++有多继承
stu instenceof Stutent-------判断左面这个对象是不是右面这个类的的实例,返回布尔值
方法重写
override
1.子类通过重写父类的方法,可以用自身的行为替换父类的行为。
public Horse extends Vehicle{
public void run(){
system.out.println("四季纷飞")
}
}
2.返回值类型小于等于父类的类型。
3.方法名形参列表相同。
4.访问权限子类大于等于父类。
Object类是所有java类的根基类
toString()方法
1.undefined和null没有toString()方法
2.布尔型数据True和false返回对应的true和false
3.字符串类型原值返回
4.
equals方法的重写
public boolean equals(Object obj){
在
ecliose鼠标右键,source,点击生成hashcode和equals方法
}
对象内容是否相等
super
直接引用父类。
super.f()
封装
encapsulation
栗子
:以电视
访问控制符
private表示私有,只有自己类能访问。
此类无法使用父类的私有属性和方法。
default有事没有修饰符修饰。只有同一个包的类能访问。
protected表示可以被同一个包的类以及其他包中的子类访问。
public表示可以被该项目的所有包中的所有类访问。
封装使用细节
1.设置属性私有
2.对属性设置set,get方法
eclipse自动生成:右击——>source——>create set and get
public class Person{
private int name;
private int age;
public void setName(String name){
this.name
=name;
}
public String getName(){
return
this.name
;
}
public void setAge(int age){
if(age>=1&&age<=120){
this.age=age;
}else{
system.out.println()
}
}
public int getAge(){
return this.age;
}
}
多态
1.同一个方法的调用,由于对象的不同可能会有不同的行为。在现实生活中,同一个方法,具体实现会完全不同。
2.多态是方法的多态,不是属性的多态
3.三个必要条件
继承
重写
父类引用指向子类对象
4.父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。
面向对象基础知识
原文:https://www.cnblogs.com/yyphappness/p/10321259.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!