目录 一、概念二、使用1.成员变量2.成员方法3.权限修饰符4.静态方法 三、重写toString方法 一、概念 我们不能将一个事物称之为一类事物,例如一只鸟我们不能称为鸟类,但是我们
对象的属性也称为成员变量,成员变量可以是任意类型,成员变量的作用域是整个类
定义一个学生类:
public class Student { private String name;//name属性 public String getName() { return name; } public void setName(String name) { this.name = name; }}
上面定义了一个name属性并写了它的get和set方法。
在刚才例子中的成员方法就是setName和getName,一个是设置名字一个是获取名字的方法。成员方法中可以设置任何类型的参数,也可以在成员方法中调用其他成员方法。
上面的this指的是自己,意思就是调用自己内部的属性或者方法。
public,private,default,protected是java的四大修饰符,下面分别主要介绍四者之间的区别:
修饰符 | 本类 | 同一个包的类 | 其他包的类 |
---|---|---|---|
public | 可访问 | 可访问 | 可访问 |
private | 可访问 | 不可访问 | 不可访问 |
protected | 可访问 | 可访问 | 不可访问 |
定义了静态方法就可以直接用对象.方法
来直接调用,就不需要先创建对象再调用方法了,静态变量和静态方法通常是为了提供共享数据或方法,如下:
public class test { public static void main(String[] args) { System.out.println(Student.name);//使用 对象.属性 调用 Student.method();//使用 对象.方法 调用 }}class Student { static String name="王五"; public static void method(){ System.out.println("这是一个静态方法"); }}
以上代码定义了一个静态属性和静态方法,通过Student.属性
或者Student.方法
来调用,就不需要先new对象再调用了
其实对于一般的对象来说都会有这个方法,这个方法的目的,主要就是将对象按字符串的方式输出出来,用白话说就是:使用文字描述这个对象里各个变量是什么值 ,这个变量是什么类型的变量等 ,并且任何类都从Object继承了这个方法,你不重写toString()方法的话输出的就是一个内存地址,也就是哈希码值。并不是输出这个类的各个变量的值,记得不重写好像只打印对象的类型而已。
返回的是 getClass().getName() + “@” +Integer.toHexString(hashCode());
也就是 类名 + @ +hashCode的值
比如下面的例子:
public class test { public static void main(String[] args) { Student stu = new Student(); stu.setName("zhangsan"); stu.setAge(18); System.out.println(stu); }}class Student { private String name; private int age; public String getName() { return name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; }}
输出:
上面就是没有重写tostring方法打印出来的东西,是什么我们也看不懂,只知道它是个对象的地址,不利于我们观看
下面是重写了toString方法的:
public class test { public static void main(String[] args) { Student stu = new Student(); stu.setName("zhangsan"); stu.setAge(18); System.out.println(stu); }}class Student { private String name; private int age; public String getName() { return name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void setName(String name) { this.name = name; } public String toString() {//重写方法 return "Student{" + "name='" + name + '\'' + ", age=" + age + '}'; }}
输出结果:
这个结果就看起来很舒服,我们就能看到刚才自己传的有哪些值。
注:打印一个对象,可以直接System.out.println(stu)其实println方法内部会自动调用stu 的 toString() 方法。
来源地址:https://blog.csdn.net/lx00000025/article/details/129812533
--结束END--
本文标题: java类的定义
本文链接: https://www.lsjlt.com/news/440891.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-01
2024-04-03
2024-04-03
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
一口价域名售卖能注册吗?域名是网站的标识,简短且易于记忆,为在线用户提供了访问我们网站的简单路径。一口价是在域名交易中一种常见的模式,而这种通常是针对已经被注册的域名转售给其他人的一种方式。
一口价域名买卖的过程通常包括以下几个步骤:
1.寻找:买家需要在域名售卖平台上找到心仪的一口价域名。平台通常会为每个可售的域名提供详细的描述,包括价格、年龄、流
443px" 443px) https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294.jpg https://www.west.cn/docs/wp-content/uploads/2024/04/SEO图片294-768x413.jpg 域名售卖 域名一口价售卖 游戏音频 赋值/切片 框架优势 评估指南 项目规模
0