黑马程序员--面向对象编程

----------------- android培训java培训、期待与您交流!-----------------
-


package com.zhy;

/**面向对象与面向过程
 *  面向过程:    即面向功能,  需要什么功能就编写什么函数去实现,  是执行者
 *  面向对象:    编写类,实现对象,调用对象的方法去实现功能,          是指挥者
 *  
 *  面向对象:三个特性:封装、继承、多态
 */

//开发时:其实就是找对象使用,没有对象,就创建一个对象
//找对象,建立对象,使用对象,维护对象的关系

/**
 * 类和对象的关系:
 * 	1:类:     对现实生活中的事物的描述
 * 2:对象:  就是这类事物,实实在在存在的个体
 * 
 * 现在中的对象:    张三、李四
 * 描述时:	     提取对象中共有的特征  有:姓名、年龄、性别、工作
 * 将这些特征映射到java中,  描述就是Class定义的类
 * 具体对象就是对应java在推内存中使用new建立实体
 * 
 * 现实中---现有对象再有去描述对象特征的类
 * 编程中---现有类才有对象
 */
//接下来简单的看个列子

/**
 * 需求:    描述汽车(名字,颜色,轮胎数量)----描述事物就是描述事物的属性和行为
 * 这分别对应了类的  属性变量  和 成员方法
 * 定义类:----就是在描述事物,就是在定义属性和行为,
 * 	                 属性和行为共同成为类中的成员(成员变量和成员方法)
 * 
 * 成员变量和局部变量
 * 范围:  成员变量在作用于整个类中,局部变量作用于整个方法中,或者语句中
 * 内存中的位置:  
 * 	           成员变量:  在推内存中因为对象的存在,才在内存中存在
 * 			   局部变量:  在栈内存中 
 */
class Car{
	
	//描述颜色
	String color  = "白色";
	//描述姓名
	String name  ="宝马x";
	//描述轮胎数量
	int num = 4;
	
	//运行个方法
	void run(){
		System.out.println(name+"---"+color+num);
	}
	
}

public class test6_obj {

	public static void main(String[] args) {
		//生产汽车:   在java中通过new操作符来完成 对象的创建
		//其实就是在推内存中产生一个实体对象
		Car car = new Car();
		car.color = "red";
		//调用它的方法
		car.run();
		
		// 匿名对象 --不带名称的对象
		/**
		 *使用方式一:  当对对象的方法使用一次时,可以用匿名对象,使用比较简化
		 *如果对一个对象进行多个成员调用,必须给这个对象取名
		 */
		Car ss =new Car();
		shows(ss);
		new Car().run();
		//使用方式二:   可以将匿名对象作为实际参数传递值
		//shows(new Car());
		
		
		/**
		 * Car sss =new Car();---内存解析
		 * 1.因为new用到了Car.class 所以会先找到Car,class文件并加载到内存中
		 * 2.执行该类中的static代码块,如果有的话,给Car.class类进行初始化
		 * 3.在推内存中开辟空间,分配内存地址
		 * 4.在堆内存中建立对象的特有属性,并进行默认的初始化
		 * 5.对属性进行显示初始化
		 * 6.对对象进行构造代码块初始化
		 * 7.对对象进行对应的构造函数初始化
		 * 8.将内存地址付给内存中的p变量
		 */
		Car sss =new Car();
		shows(sss);
		
	}
	
	public  static void shows(Car c){
		c.color = "green";
		c.name ="奔驰";
		c.num=2;
		c.run();
	}
	
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值