编写类的步骤:

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被执行
小黄
小黑在吃东西
小黄在吃鱼

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

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

java,类、实例化、构造方法、this关键字、方法重载的更多相关文章

  1. php课程 12-38 php的类的构造方法和析构方法怎么写

    php课程 12-38 php的类的构造方法和析构方法怎么写 一.总结 一句话总结:a.__construct(参数){},__destruct(){},b.如果类中的一个方法和类名相同,则该方法为构 ...

  2. Java :BufferedWriter类和BufferedReader类的构造方法、主要方法

    BufferedWriter 和 BufferedReader 为带有默认缓冲的字符输出输入流,因为有缓冲区所以效率比没有缓冲区的高. 一.BufferedWriter 类 构造方法:buffered ...

  3. 学JAVA第十五天,方法重载及构造方法进一步了解

    由于星期五生病了,所以就没写.今天上课,又来写了!!! 先来说方法的重载. 方法的重载就是有两个方法的方法名相同,但参数不一致,参数个数不一致,或参数的类型不一样. package pkg9;publ ...

  4. Java类实例化原理

    Java对象的创建过程包括 类初始化(JVM类加载机制)和类实例化两个阶段. 一.Java对象创建时机 (1)使用new关键字创建对象 (2)反射创建对象 使用Class类的newInstance方法 ...

  5. C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法

    C#构造方法(函数)   一.概括 1.通常创建一个对象的方法如图: 通过  Student tom = new Student(); 创建tom对象,这种创建实例的形式被称为构造方法. 简述:用来初 ...

  6. Java知多少(22)方法重载

    在Java中,同一个类中的多个方法可以有相同的名字,只要它们的参数列表不同就可以,这被称为方法重载(method overloading). 参数列表又叫参数签名,包括参数的类型.参数的个数和参数的顺 ...

  7. JAVA学习(七):方法重载与方法重写、thiskeyword和superkeyword

    方法重载与方法重写.thiskeyword和superkeyword 1.方法重载 重载可以使具有同样名称但不同数目和类型參数的类传递给方法. 注: 一是重载方法的參数列表必须与被重载的方法不同,而且 ...

  8. File类的构造方法:三种重载形式(新手)

    //导入的包.import java.io.File;//File类的构造方法 三种重载形式//创建的一个类.public class zylx1 { //公共静态的主方法. public stati ...

  9. Java类成员(成员变量和方法)的覆盖与隐藏归纳

    以前就知道重写override和重载overload的区别,平时也是逮着用就是了,Eclipse报错再说. 最近看一本书里面出现了重写.替换.覆盖.置换.隐藏.重载,简直乱得不行,归纳整理一下. 从全 ...

  10. Java类、对象以及(静态)方法的探讨

    大家好,这是我的第一篇博客.在这里我想跟大家分享一下Java最基础的Class and Object,也就是我们熟说的类和对象,以及对Java方法的探讨. 初学时的我因为没有对这里面的每一行代码思考透 ...

随机推荐

  1. Solution -「CSP 2019」Partition

    Description Link. 给出一个数列,要求将其分成几段,使每段的和非严格递增,求最小的每段的和的平方和. Solution 注意到 \(a_{i}\) 为正,对于正数有这样的结论: \[a ...

  2. 如何快速找到win10系统中的开机启动文件所在路径

    在网站系统开发过程中,我们会遇到一些服务器下线导致的网站无法打开的情况,就需要重启服务器,如果每次手动去操作,实在是很繁琐,所以咱们可以利用开机自启的方式.而要这样设置的话,就需要找到开机自启的目录, ...

  3. 已发布:Oracle Database 23c 免费版 — 开发人员版!

    注:甲骨文云技术公众号文章备份 2023/04/12. 翻译新闻稿. 1.新发布 Oracle Database 23c 免费版 - 开发人员版 在 Oracle CloudWorld 2022 上, ...

  4. 教育法学第六章单元测试MOOC

    第六章单元测试 返回 本次得分为:100.00/100.00, 本次测试的提交时间为:2020-09-06, 如果你认为本次测试成绩不理想,你可以选择 再做一次 . 1 单选(5分) "学习 ...

  5. CSP初赛知识点

    初赛知识点 计算机基础知识 1946年,世界上第一台计算机 ENIAC(埃尼阿克)在美国宾夕法尼亚大学诞生. 冯·诺依曼:计算机之父,提出了计算机体系结构(冯·诺依曼架构) 运算器 控制器 存储器:存 ...

  6. 每个后端都应该了解的OpenResty入门以及网关安全实战

    简介 在官网上对 OpenResty 是这样介绍的(http://openresty.org): "OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成 ...

  7. LibOciLib使用说明(2017-1-26更新)

    LibOciLib使用说明 整理者:赤勇玄心行天道 QQ:280604597 Email:280604597@qq.com 大家有什么不明白的地方,或者想要详细了解的地方可以联系我,我会认真回复的! ...

  8. 基于LangChain的LLM应用开发1——介绍

    这是基于LangChain的大语言模型应用开发系列的第一篇. 文章内容会参考deeplearning.ai的短课程(https://learn.deeplearning.ai/langchain/), ...

  9. 在VM虚拟机中安装FTP服务

    自用的话,建议先关掉防火墙 systemctl stop firewalld #关闭防火墙 systemctl disable firewalld.service #设置开机禁用防火墙 systemc ...

  10. CSS 浮动和清除浮动方法总结

    作者:WangMin 格言:努力做好自己喜欢的每一件事 什么是浮动 float? 标准流:盒子会各占整行位置.子盒子若是标准流,父盒子虽然没有高度,但是会撑开父盒子高度. 浮动:盒子浮了起来,不会占据 ...