欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java之面向对象、构造器的初步了解

程序员文章站 2022-03-24 19:58:04
...

面向对象

面向对象的定义

面向对象:
一、面向过程和面向对象之间的区别
都是一种思想,思维方式
面向过程:“我应该如何完成”,然后逐步实现
面向对象:“我应该找谁来完成”,关注的是对象,而不是关注实现的结果
面向对象依托于面向过程
二、面向对象的优点
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. 不能和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 编程