栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

JavaSE基础学习笔记

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaSE基础学习笔记

前言

在有一定Java知识的基础上对知识点进行查缺补漏,仅记录部分要点。


面对对象:以类的方式组织代码,以对象的方式封装数据。

一、变量
  • 类变量
  • 实例变量
  • 局部变量

二、Scanner对象

next()和nextLine()的区别:

scanner.close();
用完就关
scanner.hasNextInt();//判断是否有整数

scanner 是属性
scanner.hasNextInt();//判断是否输入整数
scanner.hasNextFloat();//判断是否输入小数
三、for循环

增强for循环

for(声明语句 :表达式){
	//代码句子
}
  //遍历数组元素
  for ( int x : numbers ){
  		System.out.println(x);
  }
四、可变参数

方法传递的参数可以有多个值


输出结果:

五、静态方法和非静态方法
  • 静态方法可以用类名调用
  • 非静态方法用实例对象调用

被static修饰的内容会跟随类的加载而加载,所以静态化内容可以不用实例化就可以调用,同时,静态方法之间可以互相调用;非静态方法类实例化后才存在。

六、构造器

注意:定义了有参构造之后,想使用无参构造,需要显示地定义一个无参的构造。 默认类是有无参构造器的,如果定义了有参构造器,无参构造器就不存在了,所以需要重新定义。

七、Java内存分配
  • 方法区:字节码文件加载时进入内存
  • 栈内存:方法运行时所进入的内存,变量也在这里
  • 堆内存:new出来的东西会在这块内存中开辟空间并产生地址

栈里存放地址值,指向堆中的地址,堆里存具体的值(比如属性值)

八、方法重写

非静态方法才能重写,子类不能继承父类的静态方法,只是共享(只有一份),可以直接使用。
1、子类继承父类静态方法:

输出结果:

2、子类继承父类非静态方法重写:

输出结果:和静态方法结果相反

九、多态

同一个方法可以根据发送对像的不同而采用多种不同的行为方法。

  • 多态是方法的多态,属性没有多态
  • 多态存在条件:继承关系,方法需要重写,父类引用指向子类
    ( person是student的父类)
//父类引用指向子类
Student s1 = new Student();
Person s2 = new Student();

//对象能执行哪些方法,主要看对象左边类型,和右边关系不大
s2.run();	//子类重写了父类的方法,执行了子类 的方法
s2.eat();	//eat()是子类的方法,父类没有,所以报错

注意:

1. static方法不能重写
2. final 常量不能重写
3. private 方法不能重写

十、instanceof 和类型转换

X instanceof Y 是否true取决于X和Y存不存在父子关系;

类型转换:
子类转父类,可能丢失一些自己的方法;
父类转子类,需要强制转换;

十一、抽象类

1. 不能new抽象类,只能靠子类去实现它:约束!
2. 抽象类中可以写普通的方法
3. 抽象方法必须在抽象类中
4. 抽象类不能创造对象,抽象方法没有方法体

十二、内部类 1、成员内部类

2、静态内部类

报错:因为内部类比属性先实例化(内部类比属性先出生,所以获取不到属性)

3、匿名内部类

格式:
new 类|抽象类名|接口名(){
重写方法;
};

十三、异常


Error异常:

捕获异常关键字:try、catch、finally、throws、throw
捕获多个异常,从小到大
e.printStackTrace(); //打印错误信息

public class Error {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;

        try{    //try监控区域,监控此区域的代码是否出现异常
            System.out.println(a/b);
        }catch (ArithmeticException e){ //捕获异常
            System.out.println("出现异常,变量b不能为0");
        }finally {  //处理善后工作,无论是否有异常都执行
            System.out.println("finally");
        }
    }
}

        if (b==0){
            throw new ArithmeticException();   //主动抛出异常,一般在方法中使用
        }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1030212.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号