JAVA基础知识:类 对象 引用

JAVA基础知识:类 对象 引用

一、概念

  • 类的含义
>>类:class  

所对某种类型对象定义变量和方法的原型,它表示对现实世界中一类具
有共同特征的使我的抽象,是面向对象的基础。


类是构建对象的模板或蓝图


类是对某种对象的定义,它包含有关对象动作方式的信息,包含他的名称 方法 属性和事件


  • 类和对象的关系

对象:object 是一个实体,一件事,一个名词,可以获得的东西,可以是任何东西


对象是类的实例化。


由类构造对象的过程称为创建类的实例


在java中万物皆为对象。


一个java程序可以看作是一系列对象的创建和它们之间的信息通信的过程。


若把类看作蓝图,那么可以从这张蓝图中创建出任意多个对象。


从类创建的所有对象的都有相同的成员:属性 方法。


每个对象都象一个独立的实体,一样具有独立的行为。

扫描二维码关注公众号,回复: 5584957 查看本文章

系统为每个对象独立的内存空间。


  • 封装

数据隐藏 从形式上看,就是把数据和行为放在一个包中,并对对象的使用
者隐藏了数据的实现方式。

  • 对象的实例域:

对象中属性的数据,或者说属性值称为实例域或者属性

  • 方法:

操作这些数据(属性值)的过程称为方法

  • 状态:

对于每个特定的类实例(对象)都有一组特定的实例域值(属性值),这些值的集合就是这个对象的当前状态。

  • 对象的3个主要特性

a.对象的行为

可以对对象施加那些动作,或者说施加那些方法

b.对象的状态

当施加方法后,对象所如何响应的?

c.对象标识

如何辨别具有相同行为与状态的不同对象

类的跟节点:object 这个神通广大的超类


类 对象 引用

  1. 对事物、概念、逻辑、算法抽象 抽象属性(成员变量,member varia ble)和行为(成员方法,membermethod).
  2. 理解为图纸
  • 对象
  1. 理解为从图纸创建出来的实例,可以创建多个
  2. 每个对象都是独立的实体
  3. 每个对象占用的内存空间都是独立的

  • 引用
  1. 理解为对对象的遥控器
  2. 保存对象的内存首地址,通过引用可以找到、控制、调用对象类
  • 重载
  1. 同名 不同参数个数或者不同参数类型
  2. 调用时,根据参数类型决定执行哪个方法

    println(“a bc”); pri ntln(3.14); pri ntln(newDate()) ;

  3. 可以以相同的方式处理不同类型的数据

  • 使用对象

使用对象:


Step1 : 构造对象

new 类名();

Step2 : 初始化

new 类名(初始化值);

Step3 : 给对象设置一个引用

类名 引用变量的名 =new 类名(初始化值);

Step4:对对象施加方法

引用的变量名. 方法名();


构造方法

  • 构造器的概念

    1. 构造新实例,他是个特殊的方法,用来构造并来初始化对象。

    2. 构造方法是在创建对象的时候对成员变量进行初始化

    3. 引用类对象的时候都会对类的成员变量进行一次初始化,无参的构造方法 编译器自动帮你添加,你也可以自己去写,里面的成员变量都会被执行初始化(赋值)。

  • 构造器

    • 如何没有系统会自动创建一个 默认是隐藏的
    • 其名称和类名一致
    • 构造器的参数可以有0 个 1个或者更多
    • 构造器没有返回值
    • 构造器怎是伴随着new操作一起使用
    • 构造方法可以重载
    • 多个构造方法的时候。调用相同的成员变量 避免代码重复 使用this
      向下调用 从参数少的构造方法 调用参数多的构造方法。
  • This 关键字

    1. 在一个构造方法中,调用其他重载的构造方法的必须是构造方法的首行代码
    2. 一般从参数少的构造方法调用参数多的构造方法

例如:

public Test(String a) {
        this(a, 0);
        //调用另外一个构造方法的代码 :变量 赋值语句 向下调用的
        //这个是调用Studen(Stri ng a,String b) 这个构造方法的2   
        //个参数赋值语句的,但是本构造方法就一个变量,另外一个给出一个默认值
    }

    public Test(String a, int i) {
        this(a, i, 0);
        //同理:调用下面3个变量的构造方法中的语句
    }

    public Test(String a, int i, int c) {
        String name = a;
        int sex = i;
        int age = c;
    }

用法:

  • 方法内部:都有this 他表示对自己的调用 默认是省略掉的
  • this 是对当前对象的引用
  • 当前对象: 使用那个实例调用 那个就是当前的对象
  • 用this 调用当前对象的属性 方法或者成员变量
  • 在构造方法之间相互调用
//下面2个函数的效果是一样的 当有重复的变量的时候必须使用this
class DD {

    int x;

    public DD(int x) {
        super();
        this.x = x;
    }
}

class DDd {

    int x;

    public DDd(int d) {
        x = d;
    }
}
  • 创建对象实例

使用关键字:new

Perp =new Per(3);

  • new Per() 是对象
  • P :这个对象的变量 一个指向对象的引用 ,存放在: 在栈内存中 存放实例的引用地址
  • 对象的初始数据是3 : 存放在堆内存中
  • 引用类型变量特殊值

    null :表示不引用任何对象 Scanner sc =null; // 在栈中 不保存任何地址信息 不指向堆中具体的数据(实例)
    //不能被调用

  • 方法参数传递

基本类型传递

------方法得到的只是数据的拷贝,不能修改原本的值是纯粹的引用调用

引用类型传递

------对对象采用的不是引用调用,而是进行值传递

总结:

  1. 一个方法不能修改一个基本数据类型的参数(即数值型和布尔型)
  2. 一个方法可以改变一个对象参数的状态
  3. 一个方法不能实现让对象参数引用一个新的对象

习题

第一题:

写一个类Address
属性:城市 街道 邮编
构造方法:添加多个构造方法,允许以不同的方式创建Address

第二题

写一个类 Person
属性:姓名、性别、年龄、地址(Ad dress类型)
构造方法:添加多个构造方法,
允许以不同的方式创建Person

猜你喜欢

转载自blog.csdn.net/Spark2008/article/details/44457039