1.构造方法
创建对象,给对象中的成员进行初始化,与set()方法的作用差不多
(1)方法名必须与类名相同
(2)没有返回值类型,更没有具体的返回值
(1)在一个类中,如果我们没有给出构造方法,系统将自动提供一个无参构造方法。
(2)如果我们自己给出了有参的构造方法,那么系统就不再提供的无参的构造方法,如果想要使用无参的构造方法,就必须自己给出,建议永远自己给出无参的构造方法。
//建一个电脑类,使用set和构造方法两种方式给变量赋值,并分别用get和一个方法两种方法输出。
package org.westos.demo5;
public class Computer {
private String name;
private double price;
public Computer() {
}
public Computer(String name, double price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public void show(){
System.out.println("品牌是"+name+",价格是"+price);
}
}
//测试
package org.westos.demo5;
public class MyTest1 {
public static void main(String[] args) {
Computer computer1 = new Computer();
computer1.setName("联想");
computer1.setPrice(4000);
System.out.println("品牌是"+computer1.getName()+",价格是"+computer1.getPrice());
Computer computer2 = new Computer("戴尔",5000);
computer2.show();
}
}
2.创建对象的步骤
以此为例:Student s = new Student();
步骤:
(1):加载Student.class文件进内存
(2):在栈内存为s开辟空间
(3):在堆内存为学生对象开辟空间
(4):对学生对象的成员变量进行默认初始化
(5):对学生对象的成员变量进行显示初始化
(6):通过构造方法对学生对象的成员变量赋值
(7):学生对象初始化完毕,把对象地址赋值给s变量
3.static关键字
static:状态修饰符,可以修饰成员变量,也可以修饰成员方法,修饰成员变量,此变量为共享变量,可以被该类的所有对象,所共享。
package org.westos.demo5;
public class Student {
public String name;
public static String type="大学生";
}
//测试
package org.westos.demo5;
public class MyTest1 {
public static void main(String[] args) {
Student student1 = new Student();
student1.name="张三";
student1.type="小学生";
Student student2 = new Student();
student2.name="李四";
System.out.println(student1.name);
System.out.println(student1.type);
System.out.println(student2.name);
}
}
(1)随着类的加载而加载
(2)优先于对象而存在
(3)被类中的所有对象所共享
(4)可以通过类名来调用(推荐),也可以通过对象名来调用
(1)在静态方法中没有this关键字,因为静态是随着类的加载而加载,而this是随着对象的创建而产生,静态比对象先产生。
(2)静态方法只能访问静态的成员变量和静态的成员方法。原因如上
package org.westos.demo5;
public class Student {
public String name;
public static String type="大学生";
public static void Study(){
System.out.println("这是一个静态方法");
}
}
package org.westos.demo5;
public class MyTest1 {
public static void main(String[] args) {
Student student1 = new Student();
student1.name="张三";//只能用对象名来调用
Student.type="小学生";//类名调用(推荐)
//student1.type="小学生";
Student student2 = new Student();
student2.name="李四";
System.out.println(student1.name);
System.out.println(Student.type);
System.out.println(student2.name);
Student.Study();
}
}
(1) 所属不同
成员变量属于对象,静态变量属于类。
(2)内存中的位置不同
成员变量存储于堆内存,静态变量存储于方法区中的静态区。
(3)生存周期不同
成员变量随着对象的创建而存在,随着对象的消失而消失;静态变量随着类的加载而加载,随着类的消失而消失。
(4)调用方式不同
成员变量只能通过对象名来调用,而静态变量既可以通过对象名来调用,也可以通过类名来调用(推荐)。
4.JDK帮助文档
JDk中为我们提供了好多封装好的类,但是我们又不可能将这些类的用法全部记住,所以就有了JDK帮助文档帮助我
找到文档,打开文档
点击显示,找到索引,出现输入框
你应该知道你找谁?举例:Scanner
看这个类的结构(需不需要导包)
看这个类的说明(简单的了解一下)
看开始版本
看构造方法
看成员方法
看左边:是否是static的,如果是我们就不需要创建对象,直接可以使用类名调用该方法;看返回值,返回值是什么我就使用什么接收
看右边:看参数列表: 参数的个数 , 参数的类型 ; 要什么参数我是用的时候,就传递什么参数
然后使用
5.Math类
- Math类概述
类包含用于执行基本数学运算的方法
- 获得随机数
random() :返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
举例:获取一个1-100之间的随机数
int n=(int)(random()*100+1);
- 实例验证(猜数游戏)
package org.westos.demo5;
import java.util.Scanner;
public class Game {
public static void main(String[] args) {
int count=5;
int number=(int) (Math.random()*100+1);
while(count>0){
count--;
Scanner scanner = new Scanner(System.in);
System.out.println("猜数:");
int num = scanner.nextInt();
if(num>number){
System.out.println("猜大了");
System.out.println("你还有"+count+"机会");
}else if(num<number){
System.out.println("猜小了");
System.out.println("你还有"+count+"机会");
}else{
System.out.println("恭喜你 猜对了");
}
}
if(count==0){
System.out.println("游戏结束");
}
}
}
来源:CSDN
作者:锦鱼不忘旧时晨
链接:https://blog.csdn.net/weixin_44324174/article/details/103466406