zoukankan      html  css  js  c++  java
  • Java面向对象和类

    类和对象

    最简单的类: class A{};//没有任何属性和行为


    对象: A obj=new A();


    类是定义,是规范,是“死”的东西。类似于水果这个概念,实际上并不存在。


    对象是实例,是类的一个实现,是一个具体的东西。


    A obj1=new A(); A obj2=new A();

    以上有两个对象,它们的类型都是A,但是这是两个不同的对象,在内存中有不同的存放地址。因此,没有两个对象是完全一样的。

    • A obj=new A();
    • obj可以看做内存中一个对象(包括若干个数据的句柄)。
    • 在C/C++中obj称为指针,在Java中称为Reference(引用)。
    • 对象赋值是Reference赋值,而基本类型是直接值拷贝。
    • 产生一个对象,A obj=new A();

    -%99是用new关键字,还有%1是用克隆和反射生成。

    • new出对象后,内部属性值默认是?

    short 0; int 0; long 0;

    boolen false;

    char '\u0000';(备注:其实就是一个空字符)

    byte 0;

    float 0.0f;

    double 0.0d;

    • 函数内部的局部变量,编译器不会给默认值,需要初始化后才可以使用;类的成员变量,编译器会给默认值,可直接使用。

    构造函数

    如何在变量产生时就给成员变量赋值呢?


    答案就在构造函数内

    public class A{
        int id;
        public A(int id2)
        {
            id=id2;
        }
    }
    

    A obj=new A(10);


    Java构造函数的名称必须和类名相同,且没有返回值。

    Java有构造函数,但是没有析构函数。

    每个变量都是有生命周期的,它只能存储在离它最近的一对{}中。

    Java具有自动回收机制,当变量退出其生命周期后,JVM会自动回收所分配的对象的内存。所以不需要析构函数来释放内存。

    信息隐藏和this

    信息隐藏

    面向对象有一个法则---信息隐藏

    • 类的成员属性,是私有的private。

    • 类的方法是公有的public,通过方法修改成员属性的值。

    this

    • this负责指向本类中的成员变量。

    • this负责指向本类中的成员方法

    this.add(5,3);//调用本类的add方法,this可忽略。

    • this可代替本类的构造函数。

    this(5);//调用本类的一个形参的构造函数。

  • 相关阅读:
    Android 获取View在屏幕中的位置【转】
    算法学习资源 -- 2018年8月21日星期二
    Activity SingleInstance启动模式
    Android Studio添加aar依赖的两种方式
    Multiple dex files define Lcom/google/gson/internal/Streams$AppendableWriter$CurrentWrite;
    Android Studio添加aar依赖
    jdk-8u181-docs.chm -- 制作时间2018年8月12日
    大串中查找校串出现的次数(11)
    字符串反转(10)
    String类的替换方法(9)
  • 原文地址:https://www.cnblogs.com/Acapplella/p/13301588.html
Copyright © 2011-2022 走看看