🌹作者:云小逸
📝个人主页:云小逸的主页
📝Github:云小逸的Github
🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前,其次就是现在!学会自己和解,与过去和解,努力爱自己。==希望春天来之前,我们一起面朝大海,春暖花开!==🤟
👏专栏:C++👏 👏专栏:Java语言👏
👏专栏:C语言初阶👏👏专栏:数据结构👏
大家好,很高兴你点开这篇文章,这是【JAVA语言学习】专栏的第二篇文章,这篇文章主要讲述的是:类和对象,构造器,接口,案例知识:键盘录入技术,随机数Random类。
希望你可以喜欢,加油
——————————————————————————————
可以把类理解为设计图(相同事物共同特征的描述),对象是类的具体的实例。
结论:在Java中,必须先设计类,才能创建对象并使用。
public class Car {
// 属性(成员变量)
String name; // 名称
double price; // 价格
// 行为(方法)
public void start(){
}
public void run(){
}
}
定义类有一些注意事项:
1、类名首字母建议大写,有意义,满足驼峰,不要用关键字,合法的标志符
2、一个Java文件中可以定义多个类,但是只能一个类是public修饰的,而且public修饰的类名必须成为Java代码的文件名称,否则报错!
3.成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值; 一般无需指定初始化值,存在默认值
以定义汽车类为例
修饰符 数据类型 变量名称 = 初始值;
private String name;
private double price;
成员变量不建议给初始化值,存在默认值,默认值的规则:整型是0,浮点型是0.0 引用类型null,布尔型是false
public class Car {
// 名词(属性,成员变量)
String name;
double price;
// 动词(行为,成员方法)
public void start(){
System.out.println(name + "价格是" + price +"启动成功~~");
}
public void run(){
System.out.println(name +
"价格是" + price +"性能很好,跑的很快~~");
}
}
类名 对象名 = new 构造器();
对象名.成员变量
对象名.成员方法
定义在类中的,可以用于初始化一个类的对象,并返回对象的地址
修饰符 类名(形参列表){
...
}
如:
// 无参数构造器
public Car(){
...
}
// 有参数构造器
public Car(String n, double p){
...
}
初始化一个类的对象,并返回这个对象的地址,里面的数据都是默认值
初始化一个类的对象,并返回这个对象的地址,并且可以同时为对象赋值。
类名 对象名 = new 构造器;
任何类写出来自带一个无参数构造器,写不写都会有的
如果你在这个类中定义了一个有参数构造器了,那么无参数构造器就消失了,此时,如果你还要使用无参数构造器,你必须自己写一个。
public class Car {
String name;
double price;
/**
无参数构造器
*/
public Car(){
System.out.println("无参数构造器被调用了~~");
}
/**
有参数构造器
*/
public Car(String n, double p){
System.out.println("有参数构造器被调用了~~");
name = n;
price = p;
}
}
接口是规范:约束别人必须干什么事情。
1.规范的基本特征是约束和公开。
2.接口中的抽象方法:默认会自动加上public abstract修饰,不写也有
3.接口中的常量。默认加上public static final修饰,写不写也有
被类实现:实现接口的类称为实现类(子类)
注意:接口可以被类多实现
注意:一个类实现多个接口,必须重写完全部接口的全部抽象方法,
否则这个类必须成为抽象类。
1.类与类:单继承,一个类只能继承一个直接父类。
2.类与接口:多实现,一个类可以实现多个接口
3.接口与接口:多继承,一个接口可以继承多个接口。这样可以合并多个接口。
-- 必须用default修饰,默认会自带public
-- 必须用接口的实现类的对象来调用
-- 必须static修饰,默认会自带public
-- 必须用接口名自己调用
-- 必须用private修饰
-- 只能本接口中访问。
-- 一般给接口中其他的默认方法或者私有实例方法使用的
/**
1、默认方法:其实就是实例方法。
-- 必须用default修饰,默认会自带public
-- 必须用接口的实现类的对象来调用
*/
default void run(){
go();
System.out.println("==跑的贼溜==");
}
/**
2、静态方法
-- 必须static修饰,默认会自带public
-- 必须用接口名自己调用
*/
static void inAddr(){
System.out.println("我们在黑马");
}
/**
3、私有实例方法:
-- 必须用private修饰
-- 只能本接口中访问。
-- 一般给接口中其他的默认方法或者私有实例方法使用的
*/
private void go(){
System.out.println("开始跑~~");
}
}
新增三种方法给Java自己用的。为了方便项目维护。
我们只需要知道有这三种方法,并且明白特点会访问即可。
1、接口不能创建对象
2、一个类实现多个接口,多个接口的规范不能冲突
2、一个类实现多个接口,多个接口中有同样的静态方法不冲突。
3、一个类继承了父类,同时又实现了接口,父类中和接口中有同名方法,默认用父类的。
4、一个类实现了多个接口,多个接口中存在同名的默认方法,可以不冲突,这个类重写该方法即可。
5、一个接口继承多个接口,是没有问题的,如果多个接口中存在规范冲突则不能多继承。
1、导包(自动导包):import java.util.Scanner;
2、创建一个扫描器对象:Scanner sc = new Scanner(System.in);
3、等待接收用户的数据:int age = sc.nextInt();
4、等待接收用户的数据:String name = sc.next();
1、导包(自动做的:) import java.util.Random;
2、创建随机数对象:Random r = new Random();
3、开始得到随机数 : int data = r.nextInt(10); // 0 - 9
十分感谢你可以耐着性子把它读完和我可以坚持写到这里,摘抄几句话送给你,对你,也对我:
1.想起一句话:“江湖不相信眼泪,社会不同情弱者。”生活不会因为你的脆弱,给你想要的一切,更不会因为你的痛苦,为你降低标准。没人在乎你辗转反侧的几个夜晚,也没人在乎你奔波劳碌的几个春秋。别人只关心你有没有本事,拿出了什么结果。
2.水再浑浊,要长久沉淀,依然会分外清澈。人再愚钝,只要足够努力,一样能改写命运。不要愤懑起点太低,那只是我们站立的原点。人生是一场漫长的竞赛,有些人笑在开始,有些人却赢在最后。
3.我从未见过一个早起、勤奋、谨慎、诚实的人,抱怨命运不好的。但努力是一件特别需要沉下心来长久坚持的事。它成长的土壤需要一个人单打独斗,忍受无数个孤独和寂寞的日子。心可以碎,手不能停,该干什么干什么,在崩溃中继续前行,这才是一个成年人该有的素养。
最后如果觉得我写的还不错,请不要忘记点赞✌,收藏✌,加关注✌哦(。・ω・。)
愿我们一起加油,奔向更美好的未来,愿我们从懵懵懂懂的一枚菜鸟逐渐成为大佬。加油,为自己点赞!