JavaSE自学笔记(day08)

本文详细介绍Java编程的基础知识,包括如何使用Javadoc生成帮助文档、掌握Math类的应用、代码块的理解与使用、以及类的继承等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、帮助文档//了解

    (一)写一个类

    (二)加入文档注释

    (三)通过javadoc工具生成:javac -d 目录 -author -version ArrayTool.java


二、通过JDK提供的API学习了Math类//掌握

    (一)APIとは?

        Application Programming Interface。应用程序编程接口(帮助文档)。

    (二)如何使用?

        以Scanner举例:

            1、打开帮助文档;

            2、显示→索引→输入框(Scanner);

            3、看包(java.lang包下的类不需要导入,其他的全部需要导入): 

                

            4、再简单地看看类的解释和说明,再看看该类的版本:

                

                

            5、看类的结构:

                成员变量→字段摘要(Scanner中没有,Math中有)

                构造方法→构造方法摘要

                成员方法→方法摘要

            6、学习构造方法:

                A:有构造方法,就创建对象

                B:没有构造方法,成员可能都是静态的

            7、看成员方法

                A:左边

                    是否静态,如果静态,可以通过类名调用

                    返回值类型,人家返回什么,你就用什么接受

                B:右边

                    看方法名,方法名称不要写错

                    参数列表,人家要什么,你就给什么;人家要几个,你就给几个

    (三)Math类

class MathDemo{
	public static void main(String[]args){
		double d =  Math.random();
		System.out.println(d);
		System.out.println("----------------");
		
		for (int x = 0; x < 100; x++){
			int num = (int)(Math.random()*100)+1;
			System.out.println(num);
		}
		
	}
}

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

/*

*/
import java.util.Scanner;

class GuessNumber{
	public static void main(String[]args){
		int number = (int) (Math.random()*100)+1;
		
		while (true){
			Scanner sc = new Scanner (System.in);
			System.out.println("请输入你要猜的数据");
			int guessNumber = sc.nextInt();
			
			if (guessNumber>number){
				System.out.println("您猜的数据"+guessNumber+"大了");
			}else if (guessNumber<number){
				System.out.println("您猜的数据"+guessNumber+"小了");
			}else{
				System.out.println("恭喜你猜中了");
				break;
			}
		}
		
		
	}
}


三、代码块//理解

    (一)定义:用{}括起来的代码

    (二)分类:

        1、局部代码块:用于限定变量的生命周期,及早释放,提高内存利用率

        2、构造代码块:把多个构造方法中相同的代码可以放这里,每个构造方法执行前,首先执行构造代码块

        3、静态代码块:对类的数据进行初始化,仅仅执行一次

    (三)顺序问题:静态代码块→构造代码块→构造方法


四、继承//掌握

    (一)、把多个类中相同的成员给提取出来定义到一个独立的类中,然后让这多个类和独立的类产生一个关系,这多个类就备了这些内容

    (二)格式:class 子类名 extends 父类名 { }

class Son extends Father{ }

    (三)好处:

        1、提高了代码的复用性

        2、提供了代码的维护性

        3、让类与类产生了一个关系,是多态的前提

    (四)弊端

        1、让类的耦合性增强,这样某个类的改变,就会影响其他和类相关的类

            原则:低耦合,高内聚

            耦合:类与类的关系

            内聚:自己完成某件事情的能力

        2、打破了封装性

    (五)继承的特点:

        1、Java中类只支持单继承

        2、Java中可以多层(重)继承(集成体系)

    (六)继承的注意事项:

        1、子类不能继承父类的私有成员

        2、子类不能继承父类的构造方法,但是可以通过super去访问

        3、不要为了部分功能而去继承

    (七)什么时候使用继承呢?

        1、继承体现的是:is a的关系

        2、采用假设法

    (八)Java继承中的成员关系:

        1、成员变量

            (1)子类的成员变量名称和父类的成员变量名字不一样

            (2)子类的成员变量名称和父类的成员变量名字一样:

                子类的方法访问变量的查找顺序:①在子类方法的局部范围找,有就是用;②在子类的成员范围找,有就使用;③在父类的成员范围找,有就使用;④找不到,报错。

        2、构造方法:

            (1)子类的构造方法默认会去访问父类的无参构造方法,是为了子类范文父类数据的初始化

            (2)父类中如果没有无参构造方法:

                ①子类通过super去明确调用带参构造;②子类通过this调用本身的其他构造,但一定会有一个去访问了父类构造;③父类提供无参构造。

        3、构造方法:

            (1)子类的成员方法和父类中的成员方法名称不一样

            (2)子类的成员方法和父类中的成员方法名称一样:

                通过自理对象访问一个方法的查找顺序:①在子类中找,有就使用;②在父类中找,有就使用;③找不到,报错。

    (九)面试题:

        1、Override(方法重写)和Overload(方法重载)的区别?

        2、this和super的区别和各自的作用?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值