首页 > 编程语言 >【Java基础】类和对象

【Java基础】类和对象

时间:2022-08-31 21:13:16浏览次数:45  
标签:stus Java 对象 基础 Person int Student new

1.类

人这个类有3个属性和会走路的方法
image

2.对象

新建两个具体的对象,每个对象都有类的属性和方法

    public static void main(String[] args) {
        Person zhangsan = new Person();
        Person lisi = new Person();
        
        zhangsan.age = 18;
        zhangsan.walk();
        
        lisi.isMarried = true;
        lisi.walk();
    }

通过对象.属性 对象.方法 调用,未赋值则为默认值,每个对象都有一套类的属性
image

PS:

  • 属性 = 成员变量 = field = 域、字段
  • 方法 = 成员方法 = 函数 = method
  • 创建类的对象 = 类的实例化 = 实例化类

3.对象内存解析

public class Person {
    String name;
    int age;
    boolean isMarried;
}

(1)执行

        Person p1 = new Person();
        p1.name = "汤姆";
        p1.isMarried = true;

image

(2)执行 Person p2 = new Person();
image

(3)执行

        Person p3 = p1;
        p3.age = 10;

image

4.对象数组的内存解析

class Student{
    int number;
    int state = 1;
    int score;
}

(1)执行Student[] stus = new Student[5];
image

(2)执行

        stus[0] = new Student();
        System.out.println(stus[0].state);

image

(3)执行

        System.out.println(stus[1]);   //null
        System.out.println(stus[1].number);  //java.lang.NullPointerException

(4)执行

        stus[1] = new Student();
        System.out.println(stus[1].number);  //0

image

标签:stus,Java,对象,基础,Person,int,Student,new
From: https://www.cnblogs.com/zhishu/p/16621340.html

相关文章

  • redis+java简单6位数验证码验证
    实现思路定义一个方法实现随机二维码publicstaticStringgetCode(){//发送六位数验证码Randomrandom=newRandom();Stringcode="......
  • 进程与线程基础
    1.一个进程可以理解为一个应用程序,一个进程通常包括多个线程。进程可以理解为一个公司,线程理解为公司的员工。2.进程A与进程B之间内存独立不共享线程A与线程B之间堆与方法......
  • Java实现greenplum数据库中csv文件的导入和导出
    Java实现greenplum数据库中csv文件的导入和导出背景:greenplum数据库是在开源的PostgreSQL的基础上采用MPP架构实现的关系型分布式数据库,在使用greenplum数据库进行开发的......
  • Java中“接口”可以作为方法的返回值吗?
    可以返回接口,接口虽然不能被实例化,但是接口的实现类都可以向上转型为接口。所谓面向接口编程是指我们在编写代码时对数据参数的定义尽量写成接口,待真正实现的时候再用实际......
  • Java常用类之StringBuffer、StringBuilder类
    由于String的特性:内容一旦声明则不可改变,如果要改变,改变的肯定是String的引用地址。那么如果一个字符串要经常改变,此时使用String就不太合适,从而使用StringBuffer或StringB......
  • 盘点当下最流行的 Java 工具
    最流行的工具并不一定是“最好的”,对于开发来说,什么是最好的,取决于使用场景。然而,当选择工具时,流行程度是不可忽视的一个重要因素,并不是因为工具的流行增加了其价值,而......
  • java使用Stream简单操作集合
     效果图  本项目使用springbootpom依赖<!--lombok依赖--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <v......
  • 【CV算法基础】ASMS(adaptive scale meanshift)算法理解
        参考1. ASMS算法(adaptivescalemeanshift);2. 基于YOLOv3和ASMS的目标跟踪算法;3.github_asms;完......
  • 【git基础】The TLS connection was non-properly terminated
     errorFailedtoclone'3rdparty/cutlass'.RetryscheduledCloninginto'/home/worker/shared_data/3rdparty/tvm/3rdparty/dlpack'...8ui90';/otyytuifatal:una......
  • 【CV算法基础】GIoU算法理解
    几种IoU的理解IoUIOU是用来衡量两个边界框的重叠程度的。 GIoU论文的地址为:https://arxiv.org/abs/1902.09630github代码地址:https://github.com/generalized-iou这......