首页 > 其他分享 >23.类与对象

23.类与对象

时间:2023-03-20 09:03:43浏览次数:27  
标签:name 23 对象 System Person println new public

类与对象

1.类与对象的关系

类是一种抽象的数据类型,它是对某一类事物整体描述、定义,但是并不能代表某一个具体的事物。

对象是抽象概念的具体实例。

从代码运行的角度考虑,是先有类后有对象。类是对象的模板。

//类,是抽象的,要实例化
//类实例化后会返回一个自己的对象
//student对象就是Student类的具体实例!
//对象于类而言是不唯一的,可以有多个不同对象

2.创建与初始化对象

使用new关键字创建对象。

使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化,及对类中构造器的调用。

public class Application {
    public static void main(String[] args) {
        Student xiaoming = new Student();
        Student zizi = new Student();

        zizi.name = "姿姿";
        zizi.age = 18;

        System.out.println(zizi.name);
        System.out.println(zizi.age);

        xiaoming.name = "小明";
        xiaoming.age = 3;

        System.out.println(xiaoming.name);
        System.out.println(xiaoming.age);
    }
}
public class Student {
    //属性:字段
    String name;// null
    int age;// 0
    //方法
    public void study(){
        System.out.println(this.name + "在学习");
    }
}

3.构造器

类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的,并且构造器有两个特点:

  1. 必须和类的名字相同
  2. 必须没有返回类型,也不能写void

使用new关键字,本质是在调用构造器

public class Person {
    //一个类即使什么都不写,它也会存在一个方法
    //public Person(){ }

    String name;

    //无参构造
    public Person(){
        this.name = "zizi";
    }

    //有参构造:一旦定义了有参构造,无参就必须显示定义
    public Person(String name){
        this.name = name;
    }
}

alt + insert快捷键,选择constructor可以快速创建一个构造器

public class Application {
    public static void main(String[] args) {
        //new 实例化了一个对象
        Person person = new Person();// 调用无参构造
        System.out.println(person.name);

        Person person1 = new Person("姿姿");// 调用有参构造
        System.out.println(person1.name);
    }
}

标签:name,23,对象,System,Person,println,new,public
From: https://www.cnblogs.com/Zz1001/p/17235105.html

相关文章

  • 2023.3.19 规划
    规划比赛里面写不出来的,cf和atc打少了,自己模拟少了;但是这东西我得先知道,会写模板才行;主流的算法都得会不能到哪都简单搜索,那就到哪里都坐牢;所以先是去选择最靠......
  • 对象访问方式
    ObjectobjectRef=newObject();假设这句代码出现在方法体中,ObjectobjectRef这部分将会反映到Java栈的本地变量中,作为一个reference类型数据出现。而newObject()这......
  • 面向对象三大特性:封装,继承
    封装:  为什么要隐藏属性:----------------------------------------------------------------------------------------目的的是为了隔离复杂度,例如ATM程序的取款功能......
  • 23. K8S安装过程笔记
    23.K8S安装过程笔记 发表于 2019-11-27   更新于 2022-08-17以下所有操作均基于CentOS7操作系统。视频教程连接:Bilibili Youtube基本环境配置关闭selinux......
  • 2023.3.19周学习总结
    一.本周任务进度1.线段树分裂合并学习完,并且练习了几个题2.上周的补题也补完了3.打了一把牛客和两把cf还有一把abc4.学习了斜率优化DP的凸包优化二.......
  • Spring Study-lesson14-事务-2023-03-19
    遵循ACID原则,这样保证批量事务其中一项报错,整个批量事务都不执行。案例:在spring-dao.xml中加载aop和tx注意细节:xmlns:aop(或tx)要有整个名字,另外注意>和“”的位......
  • 2023/3/19 考试总结
    其实今天没有什么好说的,四个半小时全在做第一题前两个小时在推式子,但其中一个半小时的式子是没用的。这时候突然知道正解怎么做了,发现是道水题,就花了一个半小时将代......
  • 2023-3-13
    2023-3-13练习题8.35证明\(\partialA=\overline{A}\cap(A^{\circ})^c\).根据定义,有\(\overline{A}\)与\((A^c)^{\circ}\)互为补集.所以有\(\overline{A}\c......
  • 【VTK学习笔记】VTK基本数据结构_3.2数据对象和数据集
    任务:把几何结构和拓扑结构加入到数据集中1.无拓扑结构1#include<vtkSmartPointer.h>2#include<vtkPoints.h>//几何结构3#include<vtkPolyData.h>//数据集......
  • 学习日记23.3.19
    今天在参考大佬前端代码时发现了一个小东西<htmllang="en">直接百度了一波:<htmllang="en">向搜索引擎表示该页面是html语言,并且语言为英文网站,其"lang"的意思就是“lan......