首页 > 编程语言 >java,类、实例化、构造方法、this关键字、方法重载

java,类、实例化、构造方法、this关键字、方法重载

时间:2023-12-19 16:55:21浏览次数:36  
标签:ni java 构造方法 Cat chen 重载 println public

编写类的步骤:

1、定义类名

2、编写类的属性

3、编写类的方法

public  访问修饰符,表示在整个项目中都可以调用,也可以用其他词

使用class关键字来定义类,如下,定义一个Cat类

给了属性和方法,动态方法是没有static的

public class Cat {
    //属性
    String ni_chen;
    String color;
    double weight;

    //动态方法
    public void run(){
        System.out.println("跑");
    }
    public void eat(){
        System.out.println("吃");
    }
    public void cry(){
        System.out.println("叫");
    }

    //静态方法
    public static void slp(){
        System.out.println("睡");
    }
}

类的实例化:

类名 对象名 = new 类名();

public class Test9 {
    public static void main(String[] args){
        //类名 对象名 = new 类名();
        Cat c1=new Cat();

        //引用类的属性,也称实例变量:对象名.属性;
        c1.ni_chen="小黑";
        c1.color="黑色";
        c1.weight=2.2;
        System.out.println(c1.ni_chen);
        System.out.println(c1.color);
        System.out.println(c1.weight);

        //实例方法
        //引用类的动态方法:对象名.方法名();
        c1.run();
        c1.eat();
        c1.eat();
        //引用类的静态方法:类名.方法名();
        Cat.slp();
    }
}

静态方法,可以直接用 类名.方法名 调用,也可以使用 对象名.方法名。

如果不写static,则是动态方法,必须是 对象名.方法名。

那如果想要在定义类的时候就自动给属性附上只值,而不是实例化后通过  对象名.属性  来赋值,可以在定义类的时候加上构造方法。

构造方法:

是类中的特殊方法,也称构造器(constructor),此方法在实例化的时候被调用。

构造方法书写:方法名和类名一致,不写void

public class Cat {
    //属性
    String ni_chen;
    String color;
    double weight;

    //构造方法
    public Cat(){
        System.out.println("构造方法被执行");
        ni_chen="小黑";
        color="黑色";
        weight=2.2;
    }
}

 新问题又来了,不可能每个实例化的猫的属性都一样

可以给构造函数加入参数,实例化的时候传入不同的参数就行了,这时候构造方法中要使用 this 关键字,表示对象

this关键字:

 this在类中表示当前对象,构造方法和其他方法中都可以使用this关键字去调用对象的属性和方法。

public class Cat {
    //属性
    String ni_chen;
    String color;
    double weight;

    //构造方法
    public Cat(String ni_chen, String color, double weight){
        System.out.println("构造方法被执行");
        this.ni_chen=ni_chen;
        this.color=color;
        this.weight=weight;
        System.out.println(this.ni_chen+"\t"+this.color+"\t"+this.weight);
    }

    //动态方法
    public void run(){
        System.out.println(this.ni_chen+"在跑");
    }
}

 注意,构造方法中的参数可以是其他单词,不一定要和属性名一样。

public class Test9 {
    public static void main(String[] args){
        //类名 对象名 = new 类名();
        Cat c1=new Cat("小黑", "黑色", 2.2);
        Cat c2=new Cat("小白", "白色", 2.3);
        c1.run();
        c2.run();
    }
}
构造方法被执行
小黑	黑色	2.2
构造方法被执行
小白	白色	2.3
小黑在跑
小白在跑

 

方法重载:

如果类中出现多个重名的方法,这些方法参数列表不同,就构成了方法重载。

构造方法和实例方法都能实现重载。

public class Cat {
    //属性
    String ni_chen;
    String color;
    double weight;

    //构造方法
    public Cat(String ni_chen, String color, double weight){
        System.out.println("构造方法1被执行");
        this.ni_chen=ni_chen;
        this.color=color;
        this.weight=weight;
        System.out.println(this.ni_chen+"\t"+this.color+"\t"+this.weight);
    }
    //构造方法,方法重载
    public Cat(String ni_chen){
        System.out.println("构造方法2被执行");
        this.ni_chen=ni_chen;
        System.out.println(this.ni_chen);
    }

    //实例方法
    public void eat(){
        System.out.println(this.ni_chen+"在吃东西");
    }
    //实例方法,方法重载
    public void eat(String sth){
        System.out.println(this.ni_chen+"在吃"+sth);
    }
}
public class Test9 {
    public static void main(String[] args){
        //类名 对象名 = new 类名();
        Cat c1=new Cat("小黑", "黑色", 2.2);
        Cat c3=new Cat("小黄");
        c1.eat();
        c3.eat("鱼");
    }
}
构造方法1被执行
小黑	黑色	2.2
构造方法2被执行
小黄
小黑在吃东西
小黄在吃鱼

可以看到,系统会自动地根据参数的类型和个数,选择合适的方法去执行。

书写方法重载,所给的参数必须不一样。

 

标签:ni,java,构造方法,Cat,chen,重载,println,public
From: https://www.cnblogs.com/luoshuai7394/p/17911010.html

相关文章

  • jQuery与JavaScript与ajax三者的区别与联系
    简单总结:1、JS是一门前端语言。2、Ajax是一门技术,它提供了异步更新的机制,使用客户端与服务器间交换数据而非整个页面文档,实现页面的局部更新。3、jQuery是一个框架,它对JS进行了封装,使其更方便使用。jQuery使得JS与Ajax的使用更方便 关系比喻:若把js比作木头,那么jquery就是......
  • 秦疆的Java课程笔记:77 异常 Error和Exception
    实际工作中,遇到的情况不可能非常完美。比如:写好的某个模块,用户输入不一定符合要求;程序要打开某个文件,但这个文件可能不存在或者格式不对;你要读取数据库的数据,数据可能是空的;程序在跑着,内存或者硬盘满了……等等情况。软件程序在运行过程中,这类例外情况,通称“异常”,英文:Exception......
  • 无涯教程-Java - Comparator 比较器函数
    TreeSet和TreeMap都按排序顺序存储元素。但是,比较器(Comparator)精确地定义了排序顺序的含义。比较器(Comparator)接口定义了两个方法:compare()和equals()。Compare方法intcompare(Objectobj1,Objectobj2)obj1和obj2是要比较的对象。如果对象相等,则此方法返回零。如果obj......
  • 启动微服务报错:java.lang.IllegalStateException: Service id not legal hostname (se
    Order微服务通过opneFeign调用storage和account时报错原因分析:服务名称不能有下划线,可以使用中划线,Springcloud无法识别下划线,将下划线改为中划线即可注意:这个改了之后,你在进行远程调用的时候,接口对应的方法接口也需要相应改变【分布式开发,一个微服务模块修改了,很可能......
  • 秦疆的Java课程笔记:76 面向对象 N中内部类
    内部类就是在一个类的内部再定义一个类。比如,在A类中定义一个B类,那么B类相对于A类来说就是内部类;相反,A类相对于B类就是外部类。秦疆老师声明,这小节主要是长长见识,实际编程作业中不推荐下列写法。成员内部类//先写一个有内部类的类=============================publiccl......
  • 无涯教程-Java - IdentityHashMap 类函数
    以下是IdentityHashMap支持的构造函数的列表。Sr.No.Constructor&Remark1IdentityHashMap()该构造函数构造一个新的,空的哈希,其默认预期最大大小为(21)。2IdentityHashMap(intExpectedMaxSize)此构造函数使用指定的预期最大大小构造一个新的空IdentityHashMap。......
  • java的8种异步实现方式
    异步执行对于开发者来说并不陌生,在实际的开发过程中,很多场景多会使用到异步,相比同步执行,异步可以大大缩短请求链路耗时时间,比如:发送短信、邮件、异步更新等,这些都是典型的可以通过异步实现的场景。异步的八种实现方式线程ThreadFuture异步框架CompletableFutureSpring注解@A......
  • Java http请求json数据
    publicstaticStringsendJson(Stringurl,Stringjson){StringreturnValue="调用接口失败";CloseableHttpClienthttpClient=HttpClients.createDefault();ResponseHandler<String>responseHandler=newBasicResponseHandler();try{......
  • 数据库类型和java中类型不一样的处理
    在数据库中我们定义的是字符串类型,但是根据需求我们需要存一个数组对象这个时候我们需要进行处理将java中的该变量都处理成数组,为了和数据库进行对应,我们需要在实体类添加一个东西  当有了这个的时候我们就可以和数据库进行联系啦 还需要对相应的字段进行处理 ......
  • 什么是 JavaScript 闭包?
    什么是JavaScript闭包?在JavaScript中,闭包是指一个函数能够访问在它外部定义的变量。这些变量通常被称为“自由变量”,因为它们不是该函数的局部变量,也不是该函数的参数。闭包可以在函数内部创建,也可以在函数外部创建。JavaScript中的每个函数都是一个闭包,因为它们都能够访问......