Java基础(4)——面向对象基础

1.面向对象思想

1.1 面向对象思想概述

  • 概述
    Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,
    使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面
    向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算
    机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去
    操作实现。
  • 举例
    洗衣服:
    面向过程:把衣服脱下来–>找一个盆–>放点洗衣粉–>加点水–>浸泡10分钟–>揉一揉–>清洗衣服–>拧干–>晾
    起来
    面向对象:把衣服脱下来–>打开全自动洗衣机–>扔衣服–>按钮–>晾起来
  • 特点
    面向对象思想是一种更符合我们思考习惯的思想,它可以将复杂的事情简单化,并将我们从执行者变成了指挥者。
    面向对象的语言中,包含了三大基本特征,即封装、继承和多态。

1.2 类和对象

1)什么是类

  • 类:是一组相关属性和行为的集合。可以看成是一类事物的模板(抽象),使用事物的属性特征和行为特征来描述该
    类事物。
    现实中,描述一类事物:
  1. . 属性:就是该事物的状态信息。
  2. .行为:就是该事物能够做什么。
  • 举例:小猫。
  1. .属性:名字、体重、年龄、颜色。
  2. .行为:走、跑、叫。

2)什么是对象

对象:是一类事物的具体体现。对象是类的一个实例(对象并不是找个女朋友),必然具备该类事物的属性
和行为。
现实中,一类事物的一个实例:一只小猫。
举例:一只小猫。
属性:tom、5kg、2 years、yellow。 行为:溜墙根走、蹦跶的跑、喵喵叫。

类与对象的关系

  • 是对一类事物的描述,是抽象的。
  • 对象是一类事物的实例,是具体的。
  • 是对象的模板对象是类的实体

1.3 类的定义

事物与类的对比

现实世界的一类事物:
属性:事物的状态信息。 行为:事物能够做什么。
Java中用class描述事物也是如此:
成员变量:对应事物的属性 成员方法:对应事物的行为

类的定义格式

public class ClassName {
	//成员变量
	//成员方法
}
  • 定义类:就是定义类的成员,包括成员变量和成员方法。
  • 成员变量:和以前定义变量几乎是一样的。只不过位置发生了改变。在类中,方法外。
  • 成员方法:和以前定义方法几乎是一样的。只不过把static去掉,static的作用在面向对象后面课程中再详细
    讲解。
public class Person {
    //成员变量
    String name;
    int age;

    //成员的方法(人都会吃饭、工作)
    public void work(){
        System.out.println("人在工作。。。");
    }
    public void eat(){
        System.out.println("人在吃饭。。。");
    }
}

1.4 对象的使用

  • 创建对象:
类名 对象名 = new 类名();
  • 使用对象访问类中的成员:
对象名.成员变量;
对象名.成员方法();
  • 成员变量的默认值
    在这里插入图片描述

1.5 对象内存图

在这里插入图片描述
两个对象,调用同一方法内存图
在这里插入图片描述
一个引用,作为参数传递到方法中内存图
在这里插入图片描述

1.6成员变量与局部变量的不同

在这里插入图片描述

在这里插入图片描述

2.封装

2.1 封装概述

概述

面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。
封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的
方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。

原则

将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问。

2.2 封装的步骤

  1. 使用 private 关键字来修饰成员变量。
  2. 对需要访问的成员变量,提供对应的一对 getXxx 方法 、 setXxx 方法。

2.3封装的操作——private关键字

  • private的含义
  1. private是一个权限修饰符,代表最小权限。
  2. 可以修饰成员变量和成员方法。
  3. 被private修饰后的成员变量和成员方法,只在本类中才能访问。
  • private的使用格式
  • private 数据类型 变量名 ;

2.4 封装优化1——this关键字

this的含义
this代表所在类的当前对象的引用(地址值),即对象自己的引用。
记住 :方法被哪个对象调用,方法中的this就代表那个对象。即谁在调用,this就代表谁。

2.5 封装优化2——构造方法

当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值。
小贴士:无论你是否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个无参数构造方法,
一旦自己定义了构造方法,Java自动提供的默认无参数构造方法就会失效。

构造方法的定义格式

修饰符 构造方法名(参数列表){
// 方法体
}

构造方法的写法上,方法名与它所在的类名相同。它没有返回值,所以不需要返回值类型,甚至不需要void。使用
构造方法后,代码如下:

public class Student {
	private String name;
	private int age;
	// 无参数构造方法
	public Student() {}
	// 有参数构造方法
	public Student(String name,int age) {
		this.name = name;
		this.age = age;
	}
}

注意事项

  1. 如果你不提供构造方法,系统会给出无参数构造方法。
  2. 如果你提供了构造方法,系统将不再提供无参数构造方法。
  3. 构造方法是可以重载的,既可以定义参数,也可以不定义参数。

2.6 标准代码——JavaBean

JavaBean 是 Java语言编写类的一种标准规范。符合 JavaBean 的类,要求类必须是具体的和公共的,并且具有无
参数的构造方法,提供用来操作成员变量的 set 和 get 方法。
注意:布尔类型的取值(get)的时候,使用的是isxxx的方法,而不是getxxx!

public class ClassName{
	//成员变量
	//构造方法
	//无参构造方法【必须】
	//有参构造方法【建议】
	//成员方法
	//getXxx()
	//setXxx()
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值