Java学习路线(7)——面向对象基础

1、概念

  • 对象: 是实际存在的具体实例。
  • 类: 是对象共同特征的描述 。

2、类的组成

  • 成员变量
    成员变量是类中的全局变量,它的作用域是class car的“{}”之内。
public class car{
	String carTypeName; //汽车类型名称
	double minPrice; //最低价格
	double maxPrice; //最高价格
}
  • 成员方法
    成员方法是类中的全局方法,它的作用域是class car的“{}”之内。
public class car{
	/*成员变量*/
	String carTypeName; //汽车类型名称
	double minPrice; //最低价格
	double maxPrice; //最高价格
	
	/*成员方法*/
	public void getPrice(){	//获取汽车价格
		System.out.println(carTypeName+"的价格为"+minPrice+"~"+maxPrice+"万元");
	}
}
  • 构造器
    构造器是Java用来创建并初始化对象的工具,通常在new对象时,会自动调用无参构造器,若含有参数,则先调用无参构造器,再调用有参构造器,返回对象地址。
    结构: 【修饰符 类名(形参列表){ … }】
    无参构造器: 初始化对象,成员变量赋值默认值。
public class car{
	/*成员变量*/
	String carTypeName; //汽车类型名称
	double minPrice; //最低价格
	double maxPrice; //最高价格
	
	/*构造器*/
	public car(){}
	
	/*成员方法*/
	public void getPrice(){	//获取汽车价格
		System.out.println(carTypeName+"的价格为"+minPrice+"~"+maxPrice+"万元");
	}
}

有参构造器: 初始化对象,同时接收参数列表进行赋值。

public class car{
	/*成员变量*/
	String carTypeName; //汽车类型名称
	double minPrice; //最低价格
	double maxPrice; //最高价格
	
	/*构造器*/
	public car(Stirng carTypeName,double minPrice,double maxPrice){
		this.carTypeName = carTypeName;
		this.minPrice = minPrice;
		this.maxPrice = maxPrice;
	}
	
	/*成员方法*/
	public void getPrice(){	//获取汽车价格
		System.out.println(carTypeName+"的价格为"+minPrice+"~"+maxPrice+"万元");
	}
}

注意: 有参构造器存在,则无参构造器一定要写;若有参构造器不存在,则无参构造器可以不写。

  • 代码块
  • 内部类

3、获取与使用对象

  • 获取对象: 【类名 对象名 = new 类名(…);】
  • 使用对象:
    • 访问属性【对象名.成员变量;】
    • 访问方法 【对象名.成员方法(…);】

4、注意事项

  • 类名要按照规范准则进行命名。
  • Java可以定义多个类,但只有一个类使用public关键字修饰。
  • 成员变量可以不需要初始化,采用默认值规则。

5、对象的内存机制

  • 字节码文件与main方法依次载入方法区。
  • main方法执行创建对象方法即Car car = new Car();并开辟方法区空间存储Car文件信息。
  • 栈内存的main空间中开辟空间存储Car对象堆内存地址。
  • 堆内存开辟Car对象空间,成员方法以方法区地址形式存储。
    在这里插入图片描述

6、this关键字
意义: 代表当前对象的地址。
作用: 用于指定访问当前对象的成员变量和成员方法。
作用域: 构造器与方法。


7、封装
概念: 正确设计对象的属性和方法。
原则: 对象代表什么,就得封装对应的数据,并提供数据对应的行为。
优化封装:

  • 添加private关键字
    为了避免对象被所以修改,所以我们在设计对象时会在成员变量以及成员方法的前面添加一个private(私有的)修饰符,它的作用域是当前类中使用。
  • 添加public修饰的getter、setter方法暴露取值与赋值行为。

问:如何理解封装的原则呢?
答:例如狗吃骨头,一般我们说的是狗—吃—骨头。在面向对象中,狗是调用者,吃是行为,骨头是被调用者,那么吃是骨头的对象行为,狗调用骨头吃的行为,达到狗吃骨头的目的,因为吃是个不特定动作,只有在具体对象上才有具体含义,所以骨头具有吃的行为。


8、JavaBean
概念: JavaBean指的是Java实体类,是真实世界的对象,通过数字化的方式描述该对象。

标准原则

  • 成员变量私有化
  • 提供setter/getter方法
  • 必须提供无参构造器,可选有参构造器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zain_horse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值