Java实训第7天(面向对象)

01 构造方法

  • 构造方法的作用
    • 给对象的属性进行初始化
  • 构造方法的特点
    • 方法名与类名相同(大小写都要相同)
    • 没有返回值类型,连void都没有
    • 没有具体的返回值

02 构造方法的重载

  • 注意事项
    • 如果我们没有给出构造方法,系统会自动提供一个无参构造方法
    • 如果我们给出了构造方法,系统就不会提供默认的无参构造方法
      • 这时候如果要使用无参构造方法,就要自己写一个。建议永远自己给出无参构造方法

构造方法:

class Demo
{
    //创建对象后再给成员变量赋值
    Student s1 = new Student();
    s1.name = "Tom";
    s1.age = 20;
    //创建对象的同时给成员变量赋值
    Student s2 = new Student("John",22);
}
class Student
{
    String name;
    int age;
    //构造方法
    public Student()
    {
    }
    //重载构造方法
    public Student(String name,int age)
    {
        this.name = name;
        this.age = age;
    }
}

03 创建一个对象的步骤

Student s = new Student();

  1. Student.class加载进内存
  2. 声明一个student类型引用s
  3. 在堆内存创建对象
  4. 给对象中属性默认初始化值
  5. 属性进行显式初始化
  6. 构造方法进栈,对对象中的属性赋值,构造方法弹栈
  7. 将对象的地址赋值给s

04 static关键字

  • 特点
    • 随着类的加载而加载
    • 优先于对象存在
    • 被类的所有对象共享
    • 可以通过类名调用
      • 也可以通过对象名调用,推荐使用类名调用
  • 注意事项
    • 在静态方法中没有this关键字
      • 静态方法随着类的加载而加载,而this是随着类的创建而存在的
      • 静态方法比对象先存在
    • 静态方法只能访问静态成员变量和静态成员方法
  • 备注
    • 当类的构造方法的修饰符为private时,将不能创建对象
    • 此时将所有成员变量和成员方法的定义添加static关键字,可以使用类名调用成员变量和方法量和方法

05 静态变量和成员变量的区别

  • 静态变量也叫类变量 ,成员变量也叫对象变量
  • A:所属不同
    • 静态变量属于类,所以也称为为类变量
    • 成员变量属于对象,所以也称为实例变量(对象变量)
  • B:内存中位置不同
    • 静态变量存储于方法区的静态区
    • 成员变量存储于堆内存
  • C:内存出现时间不同
    • 静态变量随着类的加载而加载,随着类的消失而消失
    • 成员变量随着对象的创建而存在,随着对象的消失而消失
  • D:调用不同
    • 静态变量可以通过类名调用,也可以通过对象调用
    • 成员变量只能通过对象名调用

06 main方法的格式详解

public static void main(String[] args) {}

  • public 被jvm调用,访问权限足够大。
  • static 被jvm调用,不用创建对象,直接类名访问
  • void被jvm调用,不需要给jvm返回值
  • main 一个通用的名称,虽然不是关键字,但是被jvm识别
  • String[] args 以前用于接收键盘录入的

07 说明书的制作

  • 通过javadoc命令生成说明书
    • @author 提取作者内容
    • @version 提取版本内容
    • javadoc -d 指定的文件目录 -author -version 文件名.java
    • @param 参数名称
    • @return 函数运行完返回的数据

08 猜数字小游戏(数据在1-100之间)

import java.util.Scanner;
class Demo_18 
{
    public static void main(String[] args) 
    {
        int number = (int)(Math.random() * 100) + 1;
        figure(number,0,100);
    }
    public static void figure(int number, int min, int max)
    {
        Scanner s = new Scanner(System.in);
        int a = s.nextInt();

        if (a <= max && a >= min)
        {
            if (a == number)
            {
                System.out.println("恭喜,输入正确");
            }
            else if (a >= number)
            {
                System.out.println("请输入 " + min + " 到 " + a + " 之间的值");
                figure(number,min,a);
            }
            else if (a <= number)
            {
                System.out.println("请输入 " + a + " 到 " + max + " 之间的值");
                figure(number,a,max);
            }
        }
        else
        {
            System.out.println("请输入 " + min + " 到 " + max + " 之间的值");
            figure(number,min,max);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值