Java类和对象

类和对象


一、对象(万物皆可对象)

1、对象的划分

①静态部分

② 动态部分

2、计算机世界中的对象

① 面向对象的程序的设计思想就是要以对象思考问题

  • 首先对现实世界的实体抽象为对象
  • 考虑对象的属性行为

②从一个问题中抽象出对象,这里抽象出的对象是大雁

③识别对象的静态属性:对象具有的属性都是静态属性

大雁
一对翅膀
一双脚
……
一只嘴

④识别对象的动态属性

动态属性
飞行
大雁
觅食
……
跳跃
一对翅膀
一双脚
……
一只嘴

⑤将以上分装起来也就是大雁类:类的实质就是封装对象的属性和行为的载体,而对象是类抽象出来的一个实例

动态属性
飞行
大雁
觅食
……
跳跃
大雁类
一对翅膀
一双脚
……
一只嘴

二、类(同一类事务的统称)

1、类的理解

  • 简单来说,将现实世界的一个事务抽象成对象,类就是这类对象的统称
飞行,吃东西,捕食,……
行为
嘴,爪子,翅膀……
属性
鸟类
2、注意
  • 类是封装属性和行为的载体,反过来说就是具有相同的属性和行为的一类实体被称为类

三、封装、继承、多太

1、封装

①封装性

  • 是面向对象的核心思想(例如即使知道计算机工作原理,使用时也不完全依赖于计算机工作原理这些细节)

  • 保证类内部数据结构的完整性

    内部数据
    为用户提供对象的属性和行为接口
    用户通过这些接口使用这个类,不需要知道这个类如何构成,不能操作类的内部数据

②继承性

③多态性

2、继承(子承父业)

①当处理一个问题时,可以将一些有用的类保留下来,在遇到同样问题时拿来**复用**

②优点:

  • 继承思想可以缩短开发的周期
  • 复用定义好的类可以提高系统性能
  • 减少了系统在使用过程中出现错误的概率

③继承主要利用特定对象间的公有属性

子类
子类
子类
子类
子类
子类
子类
子类
子类
子类
图行类(父类)
三角形(父类)
四边形(父类)
……
N变形(父类)
等边三角形
等腰三角形
……
正方形
平行四边形
不规则图形

3、多态

①多态的概念:父类对象应用于子类对象的特征就是多态

②多态的思想:对于图形类说明多态,每个图都有绘制自己的能力,这个能力看做是该类具有的行为,如果将子类看做父类的实力对象,这样当绘制图像时,简单地调用父类的也就是图形类绘制图形的方法即可绘制任何图形。

③多态性允许以统一的风格编写程序,以处理种类繁多的已存在的类及相关

④Java中抽象类不能实例化对象,在多态机制中,父类会经常被定义为抽象类,在抽象类中给出一个方法的标准,不给出具体实现的流程

⑤在多态机制中,比抽象类更方便的方法就是将抽象类定义为借口

抽象方法组成的集合就是接口

例如:不同的五金店买类螺丝帽和螺丝钉,螺丝帽很轻松就可以拧在螺丝钉上,可螺丝帽和螺丝钉的厂家不同,但是这两个物件可以轻松的组合在一起,因为生产这两个组件的两个厂家遵循一个制造标准,这种标准在Java中就是接口

四、类(封装对象的属性和行为的载体)

1、成员变量

①对象的属性也称之为成员变量

  • 创建book类,在类中设置一个成员变量name

    public class Book {
        private String name;   //定义一个String类型的成员变量 , 用private定义私有成员
        int id =0; // 定义一个int类型的成员变量id并赋初值0
        public String getName(){   // 定义一个getName()方法
            setName("java"); //调用类中的其他方法
            System.out.println(id+this.name);  
            return  id + this.name; //设置方法返回值
        }
        private void setName(String name){  //定义一个setName()方法
            this.name = name;  // 将参数的值赋给类中的成员变量
        }
        public Book getBook(){
            return this;   //返回Book类引用
        }
        public  static void main(String[] args){
            Book book = new Book(); //创建一个对象
            book.id=20; //将成员变量id赋值20
            book.getName(); //使用对象调用成员方法
        }
    }
    
    

2、成员方法

①定义成员方法的语法

权限修饰符 返回值类型 方法名(参数类型 参数名){
  方法体;
  return 返回值;
}

成员方法可以有参数,参数可以是对象,也可以是基本数据类型的变量

注意

Java中的成员方法无返回值时,用void关键字表示

② 成员方法的返回值:

  • 计算结果
  • 数值和对象
  • 返回值类型与方法返回值类型相同

一个方法中成员变量和局部变量同名时:局部>成员

类成员:成员变量和成员方法

3、权限修饰符

类修饰符
privateprotectedpublic
本类
同包其他类或者子类×
其他包的类和子类××

4、局部变量

①就是在成员方法中定义的变量称为局部变量

public String getName(){
    int id = 0;
    setName("python");
    return id + this.name;
   
}

②局部变量的有效范围

  • 局部变量的有效范围称为变量的作用域

  • 局部变量的有效范围:变量的声明开始到该变量结束

    public void doString(String name){
        int id = 0;
        for(int i=0;i<10;i++){
            System.out.pringtln(name+String.valueof(i));
        }
    }
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-koSwmlrc-1663508449688)(C:\Users\ll\AppData\Roaming\Typora\typora-user-images\1663505354264.png)]

  • 两个互不嵌套的作用域中可以声明两个名称和类型都相同的变量

    public void doString(String name){
        int id = 0;
        for(int i=0;i<10;i++){
            System.out.pringtln(name+String.valueof(i));
        }
        for(int i=0;i<22;i++){
            System.out.println(i);
        }
    }
    
  • 在嵌套区域中不可定义相同名称和类型的局部变量

5、this关键字

 private void setName(String name){  //定义一个setName()方法
        this.name = name;  // 将参数的值赋给类中的成员变量
    }
  • Java中使用this关键字代表本类对象的引用
  • 程序中this.name = name,this.name指的就是Book类中的成员变量name,第二name是形参setName()成员方法实现的就是将形参name的值赋值给成员变量
  • 也可以作为方法的返回值,直接在方法中使用return this,返回该类的引用
 private void setName(String name){  //定义一个setName()方法
        this.name = name;  // 将参数的值赋给类中的成员变量
    }
  • Java中使用this关键字代表本类对象的引用
  • 程序中this.name = name,this.name指的就是Book类中的成员变量name,第二name是形参setName()成员方法实现的就是将形参name的值赋值给成员变量
  • 也可以作为方法的返回值,直接在方法中使用return this,返回该类的引用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值