类和对象

目标:
1.面向对象的编程思想
2.理解类和对象的关系
3.掌握类创建的方式
4.掌握对象创建的方式
5.掌握基本方法的创建

1.面向对象的编程思想

一种开发方式、编程思想。

Java、Python、Kotlin、C++…PHP语言就是面向对象的编程语言。

一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模。

面向对象: 职责划分(项目规模逐渐庞大的必然结果),每一个职责,每一个专业人员就是面向对象概念中的对象。通过面向对象的方法,更利于用人理解的方式对复杂系统进行分析、设计与编程。

面向对象思想有三大特性:

  • 封装
  • 继承
  • 多态

2.类和对象的关系

2.1 对象的特征-属性

属性:对象具有的各种特征。 每个对象的每个属性都拥有特定值。(正如生物学:世界上没有两片完全相同的叶子。)

2.2 对象的特征-方法

方法:对象执行的操作(行为)。 在不同的时刻,不同身份的对象可以产生不同的行为。

对象:是用来描述客观事物的一个实体,由一组属性和方法构成。

2.3 类和对象的关系

万物皆对象: 我们生活的世界所能描述的一个实体都可以算作对象。

类:是一个抽象的概念,可以理解为是一个”模板”。它是从一群对象中发现共有的特征和行为而
产生的。而对象我们就可以看成是基于此抽象模板产生的一个具体实例,你能看得到,摸得着。

  • 特征(属性)
    • 颜色:黑白相间
    • 品种:哈士奇
    • 名字:二哈
  • 特征(行为)
    • 拆家…

我们在描述这些对象时,会从它们的属性和行为方面进行描述,同样对于类似的对象,如果它们属性和行为接近则我们会进行分类。

【类和对象的关系:】

  • 类是一个抽象的概念。
  • 类是从一组具有相似特征的对象中发现抽取而出的。
  • 对象是类的一个个体/实例(instance)。

3.掌握类创建的方式

Java是面向对象的编程语言,在Java中首先以类作为基本单位,然后可以基于类去创建很多的独立的对象。

3.1 类的基本语法

其实在 Java 中的类
基本都是以下方 Java 类模板构建而成的,它就是将现实世界中的概念模拟到计算机程序中。 它由一组属性/成员变量(特征)和方法/成员方法/函数(行为)构成。

访问修饰符 class 类名{ // 类名大驼峰命名法   访问修饰符为public的类 必须和文件名相同
    // 一组属性
    
    // 一组行为

在这里插入图片描述

4.掌握对象创建的方式

4.1 对象的定义

认识了 Java 中类的创建方式,再看看在 Java 中如何根据类模板去产生对象。到了程序中,有些时候你可以把对象理解为是存储一些数据和函数的空间。

类名 对象名 = new 类名();  // Scanner input = new Scanner(System.in);
对象名.属性名 = xxx; // 属性的赋值
对象名.方法名(); // 执行对应的方法

需求:创建一个猫对象。

Cat cat = new Cat();

需求:为对象的信息进行赋值。

cat.name = "喵喵";
cat.age = 10;
cat.color = "black";
// ....
cat.eat();
public class Demo1 {

	public static void main(String[] args) {
		// 创建对象
		Cat cat = new Cat();
		// 属性赋值
		cat.name = "喵喵";
		cat.color = "black";
		// 方法调用
		cat.eat();
		System.out.println("------------------");
		// 世界上没有两片完全相同的叶子
		Cat c = new Cat();
		// 赋值
		c.name = "小喵";
		c.color = "white";
		// 方法调用
		c.play();
	}

}

5.掌握基本方法的创建

5.1 类的方法

方法(函数)是个“黑匣子”, 完成某个特定的应用程序功能,并返回结果。类的方法定义类的某种行为(或功能)。它的种类有好几种.
和变量名一样,方法名(函数名)也是遵循小驼峰命名法。

方法的两种情况:
1.如果方法具有返回值,方法中必须使用关键字 return 返回该值,返回值类型为该值的类型。返回值只能有一个。

2.如果方法没有返回值,返回值类型为 void.(main 方法就没有返回值)

方法之间允许相互调用,实现重用,提高效率 。

5.2 方法补充

5.2.1 掌握类的构造方法

Student stu = new Student(); // 构造方法

**构造方法:**创建、构建,类的对象的构建和创建的方法。 当对象创建时都会被执行!

构造方法最重要的意义就是Java给我们提供了能够在对象的创建(生命周期)过程中添加代码的能力。

一般构造方法的应用都是用于一些基本信息的初始化(初始化方法)。

  • 每一个类默认情况下JVM都会分配一个无参构造。

  • 构造方法没有返回值类型,方法名和类名完全相同。

    // 无参构造方法  
    访问修饰符 类名(){ 
        
    }
    
  • 构造方法分为带参方法和无参方法

    // 带参方法可以极大的简化对象的创建和初始化赋值过程
    访问修饰符  类名(形参列表){
        // 利用形参给成员变量进行赋值
    }
    
    public Student(String stuName,String stuClass) {
        name = stuName;
        classId = stuClass;
    }
    // 
    Student stu1 = new Student("小明", "342");
    Student stu2 = new Student("小红", "342");
    Student stu3 = new Student("小黑", "342");
    
  • 只要你自己创建任意一个构造方法,那么JVM就不再给你分配无参构造了。所以建议无论自己是否编写构造方法,都去手动编写一个默认的无参构造。

5.2.2 掌握this关键字

// 方法内的变量:局部变量
public Dog(String name,int age) {
    // 当局部变量名称和成员变量名称相同时,会采用就近原则
    //		System.out.println(name);
    this.name = name;
    this.age = age;
}

成员变量:对象变量、实例变量。

this代表着当前类的一个对象,谁在调用谁就是当前对象。

this作为一个对象,可以去调用属性,也可以调用方法。

this.name
this.printInfo();

但是如果要调用自身的构造方法,那么需要注意的是调用必须是在某个构造方法的有效代码(不包含注释)的第一行。

因为某个构造方法没有执行完毕时,那么属性是不存在的,对象也不存在。

public Dog(){
	this(10,20); // 调用自己的带参方法 
}

5.2.3 掌握成员变量和局部变量的区别

**成员变量:**类中属性

**局部变量:**方法内变量 Local

  • 定义的位置
    • 成员变量定义在类中方法外
    • 局部变量定义在类中方法内
  • 作用域(生效)的范围
    • 成员变量可以被类中的方法所共用
    • 局部变量只能在定义的方法内使用
    • 当局部变量和成员变量同名时,会就近采用局部变量。
  • 生命周期(生老病死)
    • 成员变量(实例变量) 它是随着对象的创建而产生,随着对象的销毁而销毁。
    • 局部变量 它是随着方法的压栈而产生,随着方法的弹栈而销毁。
  • 初始值
    • 成员变量有初始值
    • 局部变量没有初始值,如果不赋值则不能使用

5.2.4 掌握方法重载

**方法重载:**发生在一个类中的,方法名相同,参数列表不同(个数、顺序、类型)的情况。与访问修饰符和返回值类型无关。

方法重载的意义在于我们要定义相同功能的方法,不需要再花费大量时间去定义n种方法名,而且未来在调用时体验更佳。

如果没有方法重载:

例如println():

	printStr()

	printInt()

	printDouble()

	printFloat()

	...

	printa()

	printb()

	printc()

使用时还需要记忆n种方法名。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值