类于对象及静态与实例

简介: 类与对象:               类,有分类的意思并 、不是一个对象就一个类,发现他们的共同属性和方法,集合在一起,申请一个类。               对象的模板、一个类可以产生很多个对象               对象是虚拟的,要想在代码中实现出来就必须申请类类的声明举例:...

类与对象:

               类,有分类的意思并 、不是一个对象就一个类,发现他们的共同属性和方法,集合在一起,申请一个类。

               对象的模板、一个类可以产生很多个对象

               对象是虚拟的,要想在代码中实现出来就必须申请类

类的声明举例:


public class Dog {//这里就是一个简单的类、狗的类
    //只要跟狗相关的都在这个类中,用的话创建对象调用就行了
    String name;
    String Chi;
    String Jiao;//以上都是属性

    //每个对象都有新的内存所以,新建对象不存在重复
    public void name() {
        System.out.println("小狗的名字" + name);
    }

    public void Chi() {
        System.out.println("小狗吃什么" + Chi);
    }

    public void Jiao() {
        System.out.println("小狗怎样叫" + Jiao);
    }
}

对象:

         new 类名();  这才是创建对象

         new对象就是创建一片新的内存给你进行管理

         方法和变量组合


//创建了一个Student类型的变量
Student student;
//创建一个对象  就是向内存申请一片空间分配属性
//然后将内存地址交于student变量
student=new Student();

//点这个符号 是属性和方法的访问符号
student.name="王麻子";
student.address="重庆";
student.sex="男";
student.age=43;
 

静态和实例:
                  类是模板,也是一个对象,叫模板对象(创建对象就是在设计模板,调用类就是往模板之中填充内容)                 

                  我们在类中设计的属性和方法都是给对象设计的,产生对象后才可以用对象访问

                  模板是不是也应该拥有自己的方法和属性呢? 类的方法和属性就是静态属性和方法

                  静态? 就是为类设计的成员 叫静态成员  类成员 (但是有一点所有的静态成员用的都是同一片内存)

                  实例? 就是为产生的对象设计的成员  叫实例成员  对象成员

                  成员 属性和方法

                  静态成员直接可以用类名或者产生的对象访问
                  实例成员必须产生对象后才能使用


public class Dog {//这里就是一个简单的类、狗的类
    //只要跟狗相关的都在这个类中,用的话创建对象调用就行了
    String name;
    String Chi;//这里是实例属性
    static String Jiao = "旺旺";//这里就是静态成员只要加上static 就是实例成员中的实例属性还有是实例方法

    //实例成员的内存是单独的,无论你创不创建对象
    //每个对象都有新的内存所以,新建对象不存在重复
    public void name() {
        System.out.println("小狗的名字" + name);
    }
    public void Chi() {
        System.out.println("小狗吃什么" + Chi);
    }

    public void Jiao() {
        System.out.println("小狗怎样叫" + Jiao);
    }

   public static void main(String[] args) {
        System.out.println(Dog.Jiao);//实例成员可以直接通过类名来调用
        Dog.Jiao = "啦啦";
        System.out.println(Dog.Jiao);//这里说明他的内存空间是单独存在的
        //但是如果想调用实例成员就创建对象例如调用 实例方法jiao
        Dog dog = new Dog();
        dog.Jiao();
    }
}





在类的代码中:

                      静态成员不可以访问实例成员(因为实例成员是创建对象后才会生成,充满的不确定)

                      实例成员可以访问静态成员(因为实例成员独立的内存你创不创建对象他都在)



public class Dog {//这里就是一个简单的类、狗的类
    static String name = "小王";
    String jiao;
    public void name() {//实例成员可以调用静态成员的员原因是静态成员的内存空间是确定的
        System.out.println(name);
    }
    public static void jiao() {
        //原因是对象还没创建内存不确定,内存都还没分配如何调用
        System.out.println(jiao);//Error:(13, 28) java: 无法从静态上下文中引用非静态 变量 jiao
    }
}


目录
相关文章
|
2月前
|
搜索推荐
如何在构造函数中为类的实例添加方法?
在实际开发中,要根据具体的场景和需求来选择合适的方式来为类的实例添加方法,以确保代码的可读性、可维护性和性能。
|
2月前
|
设计模式
在静态方法中访问类的实例属性和方法时会发生什么?
总之,静态方法主要用于处理与类本身相关的操作和逻辑,不应该直接访问类的实例属性和方法。如果需要在静态方法中使用与实例相关的信息,应该通过合理的参数传递或其他设计模式来实现,以保持代码的清晰性和面向对象设计的原则。
68 8
|
3月前
|
数据可视化 Java
让星星月亮告诉你,通过反射创建类的实例对象,并通过Unsafe theUnsafe来修改实例对象的私有的String类型的成员属性的值
本文介绍了如何使用 Unsafe 类通过反射机制修改对象的私有属性值。主要包括: 1. 获取 Unsafe 的 theUnsafe 属性:通过反射获取 Unsafe类的私有静态属性theUnsafe,并放开其访问权限,以便后续操作 2. 利用反射创建 User 类的实例对象:通过反射创建User类的实例对象,并定义预期值 3. 利用反射获取实例对象的name属性并修改:通过反射获取 User类实例对象的私有属性name,使用 Unsafe`的compareAndSwapObject方法直接在内存地址上修改属性值 核心代码展示了详细的步骤和逻辑,确保了对私有属性的修改不受 JVM 访问权限的限制
73 4
|
8月前
|
存储 Java
|
8月前
|
前端开发 算法 JavaScript
检查是否是类的对象实例
检查是否是类的对象实例
55 0
对象的相等和引用相等的区别
对象的相等和引用相等的区别
|
存储 算法 Java
10-对象的实例化内存布局与访问定位
10-对象的实例化内存布局与访问定位
116 0
10-对象的实例化内存布局与访问定位
|
设计模式
单子设计模式 (对创建初始对象为静态,构造函数私有,返回值为对象的创建函数,private应用)
单子设计模式 (对创建初始对象为静态,构造函数私有,返回值为对象的创建函数,private应用)
单子设计模式 (对创建初始对象为静态,构造函数私有,返回值为对象的创建函数,private应用)
|
Python
Python编程:类的实例动态增加属性和方法
Python编程:类的实例动态增加属性和方法
160 0
|
存储 JavaScript 前端开发
访问对象的属性,你知道有哪些方法?
相信对象对于每个使用JavaScript的人来说都不陌生。访问对象的属性几乎日常开发每天都在用。下面我们一起探索下有哪些方式可以实现属性的访问。
211 0

热门文章

最新文章