Java中的面向对象与面向过程

面向对想

面向对象和面向过程的区别

  • 都是一种思想,思维方式
  • 面向过程:"我应该如何完成?"然后一步一步的去实现就可以了
  • 面向对象:"这件事我不想做,我应该找谁来完成?"关注的就是对象,而不是关注实现过程
  • 面向对象依托于面向过程,二者相辅相成,都是一种解决问题的思路

面向对象的优点

  • 可以将复杂的问题简单化
  • 面向对象更贴合于管理者,面向过程更贴合于执行者
  • 面向对象的思维方式更符合现实生活中人们的思维方式

假如要造一辆汽车,面向过程就是一步一步的去解决问题,先去买橡胶,画图纸,造模具…等等.然而造汽车用面向对象思维来想就是,我先找一批人过来, 1个人去买橡胶,3人一起造轮胎,10人一起造模具, 20个人装配汽车等等,分工明确,每个人做每个人的事,分工明确,把造汽车这个复杂的问题简单化,更符合现实生活中人们的思维方式

java中为我们提供了2个角色: 类 对象 实现程序的开发
类: 表示一些对象的共性 | 特点 | 特征–>共性
对象: 表示现实生活中的具体事务
根据类创建对象,通过类和对象将程序与生活建立联系

如何自定义类:

修饰符 类名{
	//成员变量
	修饰符 数据类型 变量名 = 赋值;
	
	//成员方法:不被static修饰的方法就叫做成员方法
	修饰符 返回值类型|void 方法名(参数列表){
			功能体;
		}
	}
public class Phone01 { 
	//属性:成员变量
	public/*修饰符*/ String/*数据类型*/ color;
	//品牌
	public String brand;
	//价钱
	public double price;
	
	//功能:成员方法
	public /*修饰符*/void/*返回值类型,无返回值*/call(){
		System.out.println("从前有一个人长得像电话,出门就被打了...");//功能体
	}
}

类的测试
1.导包:
同包下的类不需要导包
在java.lang包下的直接子内容不需要导包

2.创建这个类型的引用|变量:–>创建对象
引用数据类型 引用 = new 引用数据类型();
new关键字就是创建对象

3.根据对象名字|引用名使用某个对象的功能
引用.功能名字();
引用.属性名字

class Phone{
	//成员属性
	//手机颜色
	public String color;
	//手机品牌
	public String brand;
	//手机价格
	public String price;
	//人
	public String name;
	//功能
	public void charge(){
		System.out.println(name+"给"+brand+color+"手机充电");
	}
}

public class Phone01 {
	public static void main(String[] args){
		Phone phone =  new Phone();//引用数据类型 引用 = new 引用数据类型();  
			//new关键就是创建对象
			phone.name="小唐";//引用.属性名字
			phone.brand="华为";//引用.属性名字
			phone.color="翡冷翠";//引用.属性名字
			
			phone.charge();//引用.功能名字();
			
		}
}

自定义的引用数据类型可以作为方法的返回值类型,返回一个对应类型的对象
下面的代码中return后面的cake返回了一个cake类型的对象
然后引用功能,让他实现,现实生活中,我们做蛋糕做好了,也需要拿回去,所以必须要返回值.

public class Cake {
	//成员属性
	//口味
	public String taste;
	//形状 
	public String shape;
	//尺寸
	public int size;
	//价钱
	public double money;
	//制作细节
	public String details;
	
	//成员方法
	//展示细节
	public void info(){
		System.out.println(taste+"-->"+shape+"-->"+size+"-->"+money+"-->"+details);
	}
}
public class Caker {
	//名字
	public String name;
	//性别
	public boolean gender;  //true->男  false->女
	//级别
	public String level;
	
	//自定义的引用数据类型可以作为方法的返回值类型,返回一个对应类型的对象
	//做蛋糕   : 动物奶油 
	//返回值:要蛋糕   Cake     参数:要  口味   尺寸    价钱
	public Cake make(String taste,int size,double price){ 
		//制作蛋糕->创建一个蛋糕对象
		Cake cake=new Cake();//引用数据类型 引用 = new 引用数据类型();  
		cake.taste=taste;//引用.属性名字
		cake.shape="java";//引用.属性名字
		cake.size=size;//引用.属性名字
		cake.money=price;//引用.属性名字
		cake.details="100个鸡蛋";//引用.属性名字
		return cake;//返回值返回一个蛋糕类型的对象
	}
}

构造器

  • new关键字就是创建对象
  • 在堆中为对象开辟空间,成员属性跟随对象进入到堆中,并赋默认值
  • 调用这个类的构造器为对象初始化信息(第一次赋值就叫做初始化,及成员属性)
  • 将地址返回给引用

构造器: 构造方法

构造函数(java中不这么叫,没有函数这一说,都称之为方法)

构造器就是一个特殊的方法

  • 构造器的作用:就是为对象初始化信息,不是用来创建对象的
  • 构造器的使用: 跟随new 使用
  • 构造器的定义
修饰符 类名(参数列表){
	构造器...
}
没有返回值类型,没有void,可以添加return
方法名必须与类名一致,否则编译器报错.
不能和static,final,abstract一起使用

注意事项

  • 如果没有自定义的为类定义任何构造器,编译器会为你的类默认提供一个空构造(没有参数的构造器)
  • 如果有显示定义任何构造器,编译器就不会再为你提供任意构造器了
  • 构造器是一个方法,是方法就可以重载

构造器的优点

  • 构造器可以帮助我们简化代码,在通过对象.属性之前,就可以提前为对象属性赋值
  • 构造器就是特殊的方法,特殊的创建方式,特殊的使用方式,特殊的作用,但是也是方法,所以有方法重载的特性

如何在创建对象的时候指定匹配不同的构造器?

				new 类型()-->匹配不同的参数列表
public static void main(String[] args) {
		//先创建对象
		Dog dog=new Dog();  //()->构造器的参数列表
		//手动赋值
		dog.color="黄色";
		dog.type="中华田园犬";
		
		//创建对象并且赋值
		Dog dog2=new Dog("棕色","金毛");
		dog.dog();
		dog2.dog();
		
		
		
	}

}
class Dog{
	public String color;
	public String type;
	
	//构造器  空构造
	public Dog(){
		System.out.println("我是空构造");
	}
	
	public Dog(String dogColor){
		System.out.println("我是带1个参数的构造器");
		color=dogColor;
	}
	
	//带参构造  2个参数
	public Dog(String dogColor,String dogType){
		color=dogColor;
		type=dogType;
		System.out.println("我是带2个参数的构造器");
	}
	
	//展示细节
	public void dog(){
		System.out.println(color+"---->"+type);
	}
	
}

说明:

  • 构造方法不能被显式调用。
  • 构造方法不能有返回值,因为没有变量来接收返回值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值