Java学习笔记第四天——面向对象

面向对象的思想:
面向对象是基于面向过程的编程思想

面向过程:强调的是每一个功能的步骤
面向对象:强调的是对象,然后由对象去调用功能

面向对象的思想特点
A:是一种更符合我们思考习惯的思想
B:可以将复杂的事情简单化
C:将我们从执行者变成了指挥者

举例:
买电脑:
面向过程:我要买电脑——我要明确买电脑的意义——上网查对应的参数信息——去电脑城买电脑——讨价还价——买回电脑
面向对象:我要买电脑——xx去给我买电脑——买回电脑

注意:两个引用指向同一个堆内存,无论哪一个引用对堆内存进行操作,另一个就会受到影响

我们学习编程语言就是为了把现实世界的事物模拟出来,实现信息化
我们是如何表现现实世界的事物的呢?
答:
A:属性 就是事物的描述信息
B:行为 就是事物能够做什么

Java语言最基本的单位就是类,所以,我们在后面的学习过程中,是通过类来体现现实世界的事物的

类:是一组相关的属性和行为的集合
对象:就是该事物的具体体现

举例:
类: 学生
对象: 班长
类是如何和事物进行对应的呢?

类:
成员变量:和我们前面学习过的变量的定义是一样的。
位置不同:类中,方法外
初始化值:不需要给初始化值

成员方法:和我们前面学习过的方法的定义是一样的。
去掉static关键字

使用一个类,其实就是使用该类的成员。(成员变量和成员方法)
而我们要想使用一个类的成员,就必须首先拥有该类的对象
创建对象的格式:类名 对象名 = new 类名();
成员变量:对象名,变量名
成员方法:对象名,方法名(…)

成员变量和局部变量的区别:
A:在类中的位置不同
成员变量:类中,方法外
局部变量:方法中或方法声明上(形式参数)
B:在内存中的位置不同
成员变量:堆内存
局部变量:栈内存
C:生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
D:初始化值得问题
成员变量:有默认值
局部变量:没有默认值。必须先定义,赋值,最后使用

通过对象直接访问成员变量,会存在数据安全问题
private关键字:
是一个修饰符可以修饰成员变量,也可以修饰成员方法
被private修饰的成员只能在本类中访问
针对private修饰的成员变量,我们会相应的提供getXxx()和setXxx()用于获取和设置成员变量的值,方法用public修饰

如果有局部变量名和成员变量名相同,在局部使用的时候采用的是就近原则
如果重名的话使用this关键字解决这个问题
this:所代表的所在类的对象引用
使用场景:局部变量隐藏成员变量

构造方法:给对象的数据进行初始化
格式:
方法名和类型相同
没有返回值类型,连void都不能写
没有具体的返回值
构造方法的注意事项

  1. 如果我们没有给出构造方法,系统将会提供一个默认的无参构造方法供我们使用
  2. 如果我们给出了构造方法,系统将不再提供默认的无参构造方法供我们使用
    这个时候,如果我们想使用无参构造方法,就必须自己提供
    推荐:自己给无参构造方法
  3. 构造方法也是可以重载的

成员变量的赋值:
A:setXxx()方法
B:带参构造方法

构造方法格式:类名 对象名 = new 构造方法(…)

无参and有参eg:

package com.itnineday_07;
/*
 * 汽车类
 */
public class Car {
	private String brand;
	private int price;
	private String place;
	
	public Car(){};
	public void setBrand(String brand){
		this.brand = brand;
	}
	public String getBrand(){
		return brand;
	}
	public void setPrice(int price){
		this.price = price;
	}
	public int getPrice(){
		return price;
	}
	public void setPlace(String place){
		this.place = place;
	}
	public String getPlace(){
		return place;
	}
	
	public Car(String brand,int price,String place){
		this.brand = brand;
		this.price = price;
		this.place = place;
	}
}


package com.itnineday_07;
/*
 * 汽车类的测试类
 */
public class CarDemo {
public static void main(String[] args) {
	Car c = new Car();
	c.setBrand("奥迪");
	c.setPrice(300000);
	c.setPlace("西安");
	System.out.println(c.getBrand()+"---"+c.getPrice()+"---"+c.getPlace());
	
	Car c2 = new Car("奔驰",400000,"天津");
	System.out.println(c2.getBrand()+"---"+c2.getPrice()+"---"+c2.getPlace());
}
	
}

如果方法的返回值是类名,其返回的就是该类的对象

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值