【Java】面向对象

重新搞一波 复习巩固

简单记录 慕课网 imooc Java 零基础入门-Java面向对象-面向对象 都是视频课件里的。

面向对象

什么是对象

什么是面向对象

什么是类

什么是属性

什么是方法

类和对象的关系

什么是对象

万物皆对象 客观存在的事物

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

对象是类的一个实例,有状态和行为。

我们周围真实的世界,就有很多很多对象,人啦狗啦等等,这些对象都有自己的状态和行为。

对比现实对象和软件对象,它们之间十分相似,

软件对象也有状态和行为,软件对象的状态就是属性,行为通过方法来体现,

软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成的。

属性 方法

状态 行为

类存在于code段,object存在于heap

什么是面向对象

人关注对象

人关注事物信息

类是模子,确定对象将会拥有的特征(属性)和行为(方法)

类是一个模板,它描述一类对象的行为和状态。

类的特点

  • 类是对象的类型
  • 具有相同属性和方法的一组对象的集合

什么是对象的属性和方法

属性:对象具有的各种静态特征

有什么

方法:对象具有的各种动态方法

能做什么

类和对象的关系

类是抽象的概念,仅仅是模板

对象是一个你能够看得到、摸得着得具体实体

类是对象的实例

对象是特定类型的数据

具体开发过程中,先定义类再实例化对象

单一职责原则

单一职责原则,也称为单一功能原则

英文是Single Responsibility Principle 缩写SRP

是面向对象设计中的一个重要原则

一个类,应该有且只有一个引起变化的原因

在程序设计中,尽量把不同职责,放在不同的职责中,即把不同的变化原因,封装到不同的类中。

对象实例化需要了解的

对象实例化

  • 实例化对象的过程可以分为两部分:

    声明对象 Cat one

    实例化对象 new Cat();

    Cat one = new Cat();

    Stack Heap

在这里插入图片描述

  • 每次new对象会产生新的实例化对象

    Cat one = new Cat();

    Cat two = new Cat();

在这里插入图片描述

  • 多个对象可以指向同一块实例化空间

    Cat one = new Cat();

    Cat two = one;

在这里插入图片描述

对象必须被实例化之后才能使用

对象间的引用传递,实际上传递的是堆内存空间的使用权

构造方法

构造方法与类同名且没有返回值

构造方法的语句格式

只能在对象实例化的时候调用

在这里插入图片描述

当没有指定构造方法时,系统会自动添加无参的构造方法

当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法了

一个类中可以有多个构造方法

this关键字

  • this:当前对象的默认引用

  • this的使用

    调用成员变量,解决成员属性和局部变量同名冲突

    调用成员方法

在这里插入图片描述
调用重载的构造方法

在这里插入图片描述
Cat.java

package com.imooc.animal;
/**
 * 宠物猫类
 * @author imooc
 *
 */
public class Cat {
    //成员属性:昵称、年龄、体重、品种
	String name;//昵称 String类型默认值null
	int month;//年龄 int类型默认值0
	double weight;//体重 double类型默认值0.0
	String species;//品种

	public Cat(){
		System.out.println("我是无参构造方法");
	}
	public Cat(String name){
		System.out.println("我是带参构造方法");
	}
	public Cat(String name,int month,double weight,String species){
		this();
		this.name=name;
		this.month=month;
		this.weight=weight;
		this.species=species;
	}
	
//	public void Cat(){
//		System.out.println("我只是一个普通的方法,恰好方法名叫Cat");
//	}

	//成员方法:跑动、吃东西
	//跑动的方法
	public void run(){
//		Cat();
		eat();
		System.out.println("小猫快跑");
	}
	public void run(String name){
		System.out.println(name+"快跑");
	}
	//吃东西的方法
	public void eat(){
		System.out.println("小猫吃鱼");
	}
}

CatTest.java

package com.imooc.animal;

//单一职责原则
public class CatTest {
	public static void main(String[] args) {
		// 对象实例化
		Cat one = new Cat("花花",2,1000,"英国短毛猫");
	    // 测试
//		one.name = "花花";
//		one.month = 2;
//		one.weight = 1000;
//		one.species = "英国短毛猫";
		
		System.out.println("昵称:" + one.name);
		System.out.println("年龄:" + one.month);
		System.out.println("体重:" + one.weight);
		System.out.println("品种:" + one.species);
		one.run();
//		one.Cat();

	}
}

发布了48 篇原创文章 · 获赞 6 · 访问量 6570

猜你喜欢

转载自blog.csdn.net/qq_41569732/article/details/103518770