• 【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();
    
    	}
    }
    
    
  • 相关阅读:
    【Flutter学习】之绘画实例(二)
    【Flutter学习】之绘画实例(一)
    【Flutter学习】之动画实现原理浅析(三)
    【Flutter学习】之动画实现原理浅析(二)
    NopCommerce支持多种类型的数据库
    NopCommerce 多数据库方案
    开发程序需要注意的点
    基于SVN的项目管理——集中与分散
    JS代码优化小技巧
    开发日记:中控PUSH协议
  • 原文地址:https://www.cnblogs.com/liuawen/p/12114611.html
Copyright © 2020-2023  润新知