• 类与对象


    类的定义:

    • 类的定义包括两部分:类声明和类体
    • 类是java程序的基本要素
    • 定义类的格式:image
      • 修饰符可以是public 或空: public代表即使不同包也能访问该类;而空代表只能该类只能在同一个包内访问。
      • 类体的内容包括变量的生命和方法的定义。【所以单独的定义是错误的,只能声明并同时定义】
        • image
        • image

    对象实例化

    • 类的实例化就是创建一个对象:
      • 创建对象:类名 变量名 =new 类名()【类名()可以传入一些参数来初始化对象,由类的同名方法(构造方法,下面讲)定义能传入什么参数】
        • image
        • 匿名对象:简单来说就是没有变量名的实例化,直接使用new 类名()来执行操作,由于没有变量名来特异的标记一片内存空间,所以匿名对象一般只使用一次,比如new Dog().hello();
      • 调用方法或变量:对于实例方法或变量的可以直接使用对象来调用;而对于静态方法或变量,既可以使用对象,也可以使用类来调用。
        • image
        • image
    复制代码
    class Dog{
        String name;
        int foot=4;
        Dog(){//这是一个构造函数
            this.name="旺财";
        }
        void hello() {
            System.out.println("hello,this is a dog");
        }
        static void static_hello() {
            System.out.println("hello,this is a dog too");
        }
    
    
    }
    
    public class Demo {
    
        public static void main(String args[]) {
            
            Dog d=new Dog();
            System.out.println(d.foot);//4
            d.hello();//hello,this is a dog
            d.static_hello();//hello,this is a dog too
            Dog.static_hello();//hello,this is a dog too
            
        }
    }
    复制代码

    成员变量:

    成员变量的有效范围

    • 成员变量在整个类范围内有效,与变量声明的位置无关。方法中的局部变量从声明它的位置开始生效,并且只在方法体内有效。
    • 当局部变量跟成员变量同名时,如果想特别的使用成员变量,可以使用“this.变量名”
    • 成员变量有默认值,而局部变量没有默认值。

    成员变量的赋值:

    • 可以使用构造函数来对一些成员变量初始化
    • 如果成员变量不是私有的,也可以直接取得变量名来赋值,比如dog.age=18

    静态变量、方法与实例变量、方法:

    根据变量、方法是否有static修饰可以分为实例变量,实例方法和静态变量(类变量),静态方法(类方法)

    • 静态变量,静态方法:

      • 被static修饰的成员的特点:

        • 随着类的加载而加载,优先于对象存在,静态成员内存位于方法区

        • 被所有对象所用享【所以可称为类变量或类方法】

        • 可以直接类名调用

        • 静态方法只能访问静态成员

        • 静态方法中不可以写this,super关键字

     

    • 实例变量、实例方法:

      • 实例变量、实例方法是对象的变量和方法,对象操作变量或方法也只是操作自己的变量或方法,不会影响其他对象。

    实例变量方法跟静态变量方法的区别好比:“泰迪狗类”比如有一个共有属性“狗种类名”,那么这个属性应该是所有泰迪狗都有的,并且是泰迪狗共享的,如果某一天人类想改泰迪狗的种类名称,那么应该是所有泰迪狗都改的(静态的);而每一只泰迪狗都有自己的主人,这是由每一只狗自身决定的,所以这是特有属性,即使这只狗换了主人,也不会影响别的狗。(实例的)

     

  • 相关阅读:
    iOS 适配iPhoneX上tableHeaderView发生了高度拉伸、UI出现的空白间距
    无线加密WEP、WPA、WPA2及TKIP、AES
    字符替换操作
    jQuery版本升级问题汇总
    ipv6服务器及环境搭建
    git删除某次提交操作
    五种IO模型
    jQuery1.6以上attr改用prop
    线程创建pthread_create用法(转)
    网络字节序与主机字节序
  • 原文地址:https://www.cnblogs.com/mms912/p/8734912.html
Copyright © 2020-2023  润新知