JAVA面向对象
面向对象的概念:
面向对象:
- 虚拟世界模拟现实生活,必须保证模拟一致
面向过程:
- ……
类:
- 对同一事物的抽象描述,也就是:不是具体的
- 如:电脑类、水杯类、键盘类……
对象:
- 万物皆对象,也就是说:具体的实例
- 如:我的电脑、张三的电脑……
类与对象之间的关系:
- 抽象与具体的关系
描述对象的特征,称为属性,如颜色、价格、尺寸……
- 如:张三(名字、性别、年龄、身高……)
将多个对象找到相同的属性和方法组合在一起,形成类
-
学生类:
-
属性:
- 名字、性别、年龄……
-
方法:
- 学习……
-
创建对象:
- 类名 对象名 = new 类名();
(对象)使用成员变量:
- 对象名.变量名;
(对象)使用成员方法:
- 对象名.方法名();
创建对象:
语法格式:
- 类名 引用名称 = new 类名();
成员变量和局部变量:
声明位置不同:
-
成员变量:
- 在类中声明
-
局部变量:
- 在方法中声明,其中形参也属于局部变量
初始值不同:
-
成员变量:
- 在没有赋值时,是有默认值的,数据类型不同,则默认值不同
-
局部变量:
- 没有默认值,必须先声明,然后再赋值,才可使用
在同一个类中,成员变量的名字可以与局部变量名字同名,但是局部变量名字优先,也就是就近优先,如果非要访问成员变量则必须添加this
访问对象中的属性和方法:
语法格式:
-
访问属性语法格式:
- 引用名称.属性
-
访问方法语法格式:
- 引用名称.方法名称();
对对象中的属性值赋值:
- 引用名称.属性名称=值;
空指针异常
属于运行错误
- java.lang.NullPointException
原因:
- 当引用名称的值为null时,就不能访问某个对象中的属性或方法,如果非要访问则出现空指针异常
解决方法:
- 在访问某个对象中的属性中或方法值之前必须保证该引用名称中存放的是对象的引用地址(if判断)
变量按数据类型分为:
基本数据类型:
-
在内存中存放真正的值
- 4大类,共计8种
引用数据类型:
-
在内存中存放的是地址(引用)
-
String
-
自定义类型(用户)
-
如:
- Student类
-
-
对引用数据类型赋值的方法:
-
1、将对象赋给引用名称:
- s=new Student();
-
2、将null值赋给引用名称:
- s=null;
构造方法以及重载:
作用:
- 完成对对象中的属性赋值
构造方法:
-
语法格式:
- public 类名([参数列表]){
}
-
构造方法是一个特殊的方法,构造方法名字必须与类名一致,构造方法必须没有返回类型,也就是不编写返回类型,可有参(任意n个),可无参
-
有参:
- this.color=color;
-
-
构造方法如何执行的?
-
构造方法分类:
-
隐式构造方法:
- 在一个类中,没有手动编写构造方法,则系统会提供一个默认的无参的构造方法
-
显示构造方法:
- 在一个类中,手动编写构造方法,则系统就不会提供默认的无参构造方法
-
构造方法:
- 建议:当手动编写构造方法时,先无参,后需要参数
-
构造方法的重载:
-
在一个类中,构造方法必须名字相同,参数列表不同:
- 个数不同
- 类型不同
- 顺序不同