Java之面向对象、构造器的初步了解
面向对象
面向对象的定义
面向对象:
一、面向过程和面向对象之间的区别
都是一种思想,思维方式
面向过程:“我应该如何完成”,然后逐步实现
面向对象:“我应该找谁来完成”,关注的是对象,而不是关注实现的结果
面向对象依托于面向过程
二、面向对象的优点
1.可以将复杂问题简单化
2.面向对象更加贴合管理者,面向过程更加贴合执行者
3.面向对象的方式更加符合现实生活中人们的思考问题的方式
三、提供了2个角色:类 对象,实现程序的开发
类:表示对一系列具有相同特征的事物进行抽象
对象:表示对抽象后的事物进行具体化表现
(类是对一些具有共性的的对象进行抽象化的表达
对象:表示现实生活中的具体事物)
四、如何定义类
修饰符 class 类名{
//成员变量
修饰符 变量名=赋值;
//成员方法:不被static关键修饰的方法叫做成员方法
修饰符 返回值类型 方法名({参数列表}){
方法体;
return;
}
}
示例:可采用如下方式来定义类中的成员变量和成员方法
例如: 手机可提供的功能 :上网、拍照、打电话
手机本身具有的属性:颜色、品牌、价格
提供的功能 :提供方法(在此例指代成员方法)
手机的属性 :指代变量(在此例值成员变量)
成员变量的定义与方法的构造
public class Phone01{
//成员变量
//修饰符 数据类型 变量名;
public String color;
public double price;
public String brand;
//成员方法
//修饰符 返回数据类型 方法名(){} 修饰符不允许带static
public void photos(){
System.out.println("我提供拍照的功能");
}
public void call(){
System.out.println("我提供打电话的功能");
}
public void surfTheInternet(){
System.out.println("我提供拍照的功能");
}
}
对象属性的赋值和使用
1.导包
01.在同包下不需要导包
02.在java.lang包下的直接子内容不需要导包
2.创建
引用数据类型 变量名=new 引用数据类型();
关键字:new 关键字就是创建对象
3.使用功能
引用.功能名字();
引用.属性名字()
示例如下:
public class PhoneTest02{
public static void main(String[] args){
//1.创建对象
Phone01 phone=new Phone01();
//2.使用对象的属性(成员变量)
phone.color="银色";
phone.brand="小米";
phone.price=2520;
System.out.println(phone.color);//银色
System.out.println(phone.brand);//小米
System.out.println(phone.price);//2520
//3.使用对象的方法(成员方法)
phone.call();
phone.photos();
phone.surfTheInternet();
}
}
构造器
构造器的构造过程
构造方法:使用new 关键字创建对象;
- 在堆中为对象开辟空间,成员属性随之进入到堆内存中,并附默认值
- 调用这个类的构造器为对象初始化化信息(第一次赋值叫做初始化,成员属性)
- 返回对象的地址给引用
构造器:构造方法;构造函数。总之就是一个特殊的方法
-
作用:就是为对象初始化信息,不是用来创建对象的
-
使用:跟随new使用
-
定义
修饰符 类名([参数列表]){
构造器…
}
构造函数的注意项
-
没有返回值类型,没有void,可以添加return
-
方法名必须与类名一致
-
不能和static,final,abstract一起使用
注意:
如果没有自定义的为类定义任何构造器,编译器会为你的类默认提供一个空构造(没有参数的构造)
构造器可以帮助我们简化代码,在通过对象.属性之前,就可以为对象的属性赋值
构造器是特殊的方法,特殊的创建方式,特使的使用方式,特殊的作用,但是也是方法,所以有方法重载的特性
如何创建对象的时候指定匹配不同的构造器?
new 类型()->()匹配不同的参数列表
示例如下:
public class ConstructorDemo01 {
public static void main(String[] args) {
//先创建对象
Dog dog1=new Dog();
dog1.view();
Dog dog2=new Dog("黑色","加菲");
dog2.view();
Dog dog3=new Dog("黄色");
dog3.view();
}
}
class Dog{
public String color;
public String type;
//空构造器
public Dog(){
System.out.println("我是空构造器");
}
//有参构造器1
public Dog(String color,String type){
this.color=color;
this.type=type;
System.out.println(this.color+"我是有参构造器"+this.type);
}
//有参构造器2 方法的重载
public Dog(String color){
this.color=color;
this.type=type;
System.out.println(this.color+"我是有参构造器"+this.type);
}
//定义方法
public void view(){
System.out.println(color+"---"+type);
}
}
上一篇: Java之面向对象
下一篇: 了解Java程序之面向对象