首页 > 编程语言 >java类的引入

java类的引入

时间:2023-05-29 21:46:32浏览次数:62  
标签:java name age System Person 引入 println out

对比:  

 

构造方法:

  1. 方法名和类名相同

  2. 方法没有返回值,且用public修饰

  3. 可以有任意多个参数(默认是没有参数)

  注:可以有多个构造函数;

    当在实例化这个类的对象时,如果实例化的对象没有带参数,则调用没带参数的构造函数

class Person {
    String name;
    int age;
    String getName() {
        return "guangdong "+name;
    }

    /* construct method */    
    public Person () {
        name = "null";
        age  = 0;
    }

    public Person (String name) {//带一个参数的构造方法
        this.name = name;
    }

    public Person (String name, int age) {//带两个参数的构造方法
        this.name = name;
        this.age  = age; 
    }    
};

public class Oop3 {
    public static void main(String args[]) {
        Person p1 = new Person("zhangsan");//在实例化p1对象时,带一个参数的构造方法被调用
        Person p2 = new Person("lisi");
        Person p3 = new Person();//在实例化p3对象时,带没有参数的构造方法被调用
        Person p4 = new Person("wangwu", 6);//在实例化p4对象时,带两个参数的构造方法被调用

        System.out.println(p1.getName());
        System.out.println(p2.getName());
        System.out.println(p3.getName());
        System.out.println(p4.getName());
    }
}

this关键字:

  表示当前对象/当前类的属性,如上面person类中的name和age,this.name就表示当前类中的属性name;this.age就表示当前类中的属性age,所以用同名的name和age赋值就不会有冲突,如果没有this,那么name = name,根据变量的就近原则,这两个name都表示参数中的name,就不对。

 

static关键字:

  static修饰方法,叫做类方法,即可以不用实例化对象就可直接通过类.方法名直接调用

  static修饰属性,叫做类属性,也可以不用实例化对象就可直接通过类.属性名直接调用

  注:main方法就是用static修饰的,所以JVM不用实例化对象就能直接调用main函数了

class Person {
    static int count;//类属性
    
    String name;
    int age;
    String getName() {
        return "guangdong "+name;
    }

    /* construct method */    
    public Person () {
        count++;
        name = "null";
        age  = 0;
    }

    public Person (String name) {
        count++;
        this.name = name;
    }

    public Person (String name, int age) {
        count++;
        this.name = name;
        this.age  = age; 
    }

    static void printPerson () {//类方法
        System.out.println("This is a class of Person");
    }
    
};

public class Oop4 {
    public static void main(String args[]) {
        Person p1 = new Person("zhangsan");
        Person p3 = new Person();
        Person p4 = new Person("wangwu", 6);

        System.out.println(p1.getName());
        System.out.println(p3.getName());
        System.out.println(p4.getName());

        Person.printPerson();//调用类方法或类属性可以不用实例化对象
        System.out.println(Person.count);
    }
}

 

代码块:

  普通代码块:方法中用大括号{}括起来的

  构造代码块:先于构造函数执行,且每实例化一个对象,构造代码块就会执行一次

  静态代码块:实例化第一个对象前执行;先于构造代码块执行,且只会执行一次

class Person {

    static int count;
    
    String name;
    int age;
    String getName() {
        return "guangdong "+name;
    }

    static {//静态代码块
        System.out.println("static block");        
    }

    {//构造代码块
        System.out.println("construct block");
        count ++;
    }

    /* construct method */    
    public Person () {
        System.out.println("construct method: Person 1");
        name = "null";
        age  = 0;
    }

    static void printPerson () {//普通代码块
        System.out.println("This is a class of Person");
    }    
};
public class Oop5 { public static void main(String args[]) { Person p3 = new Person(); System.out.println(p3.getName()); Person.printPerson(); System.out.println(Person.count); } }

 

标签:java,name,age,System,Person,引入,println,out
From: https://www.cnblogs.com/zj-studyrecoding/p/17441740.html

相关文章

  • 002_Java的环境
    002_Java的环境JDK的删除删除Java的安装目录删除JAVA_HOME删除path下的Java目录配置JDK我的电脑-右键-属性-环境变量新建JAVA_HOME,将安装路径复制进去配置path验证版本代码:java-version......
  • Java中的多态性
    多态性是面向对象编程的一项核心概念之一,它允许程序员使用不同的方式来处理不同的对象类型,而不必知道实际对象类型。在Java中,多态性可以通过继承和接口来实现。继承的多态性在Java中,多态性可以通过继承来实现。子类可以继承父类的方法和属性,并且还可以覆盖它们,使得它们在子类中......
  • Java日期时间调整的几种方式
     一、Calendar类我们现在已经能够格式化并创建一个日期对象了,但是我们如何才能设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟?我们又如何在日期的这些部分加上或者减去值呢?答案是使用Calendar类。Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂......
  • 【Java】你真的了解抽象类和接口?
    一、抽象类在Java中,一个类如果被abstract修饰称为抽象类,抽象类中被abstract修饰的方法称为抽象方法**,抽象方法不用给出具体的实现体**。publicclassTestDemo{publicstaticvoidmain(String[]args){Circlec=newCircle();c.setR(5);c.......
  • tailwindcss在使用cdn引入静态html的时候,使用vscode代码提示
    原文:Hey!TheIntellisenseextensiondoesneedaconfigfiletoworktoday.Iwouldsuggestcreatingoneinyourprojectroottoenabletheextension.Anemptyfilewillworkjustfineforthiscaseifthedefaultssuityourneeds.Ifyouwanttocustomiz......
  • Javaweb中在SQL语句中使用未知数进行多表查询
    这个问题主要是匹配好引号和单引号即可。如果是varchar型,那么变量要带单引号('),如果是int型就不用带。同时要注意用+号进行String的拼接。示例:publicList<Student>huizong_bujige(Stringkemu1){List<Student>list=newArrayList<>();Connectionconn......
  • Java-Day-25( 字节输入流 + FileInputStream 和 FileOutputStream + FileReader 和 Fi
    Java-Day-25InputStream(字节输入流)InputStream抽象类是所有类字节输入流的超类InputStream常用的子类FileInputStream:文件输入流BufferedInputStream:缓冲字节输入流ObjectInputStream:对象字节输入流FileInputStream和FileOutputStreamFileInputStream(文......
  • IDEA-Maven项目中:java程序包org
    IDEA-Maven项目中:java:程序包org.apache.hadoop.conf.fs等众多Hadoop包不存在的问题问题描述在IDEA中创建Maven项目,乱修改xml文件,导致错误解决办法打开右侧导航栏:Maven输入:mvmidea:idea......
  • Java中多个pdf合并为一个pdf文件工具类
    Java中多个pdf合并为一个pdf文件工具类方案一:引入依赖<dependency><groupId>com.lowagie</groupId><artifactId>itext</artifactId><version>2.1.7</version></dependency>工具类importcom.lowagie.text.Document;impo......
  • java.lang.UnsupportedOperationException
    错误的查询返回格式//dao层Listquery_T_JS_DHGL_XMLGJ(Map<String,String>queryParams);正确的的查询返回格式ArrayList<Map>query_T_JS_DHGL_XMLGJ(Map<String,String>queryParams);知识点:使用asList方法继承的父类的add和remove,只会抛出UnsupportedOper......