面向对象的初步理解以及初步了解构造器

面向对象

面向对象的定义

面向对象:

     一、面向过程和面向对象之间的区别 都是一种思想,思维方式 面向过程:"我应该如何完成",然后逐步实现 面向对象:"我应该找谁来完成",关注的是对象,而不是关注实现的结果 面向对象依托于面向过程

    二、面向对象的优点

         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 关键字创建对象;

  1. 在堆中为对象开辟空间,成员属性随之进入到堆内存中,并附默认值

  2. 调用这个类的构造器为对象初始化化信息(第一次赋值叫做初始化,成员属性)

  3. 返回对象的地址给引用

构造器:构造方法;构造函数。总之就是一个特殊的方法

  1. 作用:就是为对象初始化信息,不是用来创建对象的

  2. 使用:跟随new使用

  3. 定义

    修饰符 类名([参数列表]){

    构造器...

    }

构造函数的注意项

  1. 没有返回值类型,没有void,可以添加return

  2. 方法名必须与类名一致

  3. 不能和tsatic,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);
}
}

 

posted @ 2019-10-21 22:51  随风而逝枫叶已落  阅读(210)  评论(0)    收藏  举报