- 博客(11)
- 收藏
- 关注
原创 内部类、局部内部类、匿名内部类、成员内部类、静态内部类
代码演示:4.匿名内部类(局部内部类的特殊情况)基本语法: new 类/接口(参数列表){ 类体};上面的这个语法,本质上相当于一个对象。
2024-08-28 15:47:19
309
原创 抽象类、接口、继承vs接口
接口(interface)就是给出一些没有实现的函数,封装到一起,到某个类要使用的时候,再根据具体的情况把这些方法写出来。普通类实现(implements)接口,必须实现接口中所有的抽象函数(快捷键alt + enter)接口类似于继承也有其多态性(可以将接口的实现类赋值给接口对象,就类似于父类对象可以指向其不同的子类)接口中所有的方法都是public,接口中抽象的函数可以不用abstract修饰(自带)抽象类实现(implements)接口时,可以不实现接口的抽象方法。 必须要实现的接口的抽象方法。
2024-08-28 15:46:14
341
原创 main函数、代码块、final
main函数接受的是一个String数组类型的参数,该参数在执行java +【要运行的程序】 + 参数。(6)创建子类时的继承关系:静态代码块、静态属性初始化、普通代码块、普通属性初始化、构造方法的调用顺序。(1)普通的代码块,在创建对象实例时,会被隐式的调用。每被创建一次,就会调用一次。(5)构造函数前面隐含了super()和普通代码块(先super后普通代码块)final可修饰类、属性、方法、局部变量(大部分意为不可修改)(2)static代码块也叫静态代码块,作用是。而执行,并且只执行一次。
2024-08-28 15:45:23
623
原创 静态方法(类方法)、静态变量(类变量)
3.使用场景:不涉及任何和对象相关成员(不需要修改非静态成员变量 ),不需要创建对象可以直接使用的函数即可设置为静态成员函数。2.访问方法:类名.类变量名 或者对象名.类变量名(访问时仍然遵从访问修饰符的权限方法)5.类方法只能访问静态变量和静态方法(静态方法只能访问静态成员,因为静态方法先加载)1.静态方法调用时可以直接用类名.方法名,也可以通过创建的类对象调用。2.静态变量在类加载的时候就生成了(不用创建类实例对象即可访问)3.类方法和普通方法都是随着类的加载而加载,将信息存储在方法区。
2024-08-28 15:43:13
112
原创 多态、多态的体现、instanceof、equal和==号的区别
多态:方法或对象具有多种形态,是oop的第三大特征,是建立在封装和继承之上多态的具体体现:方法多态:(1)重载 (同一对象内)(2)重写(父子)对象多态: (1)对象的编译类型和运行类型可以不一致(父类引用指向子类) (2)对象的运行类型可以变化,可通过getClass()方法查看对象的运行类型 (3)编译类型 ”=“左边,运行类型看”=“右边。
2024-08-28 15:41:31
271
原创 包、封装、继承、super、重写与重载
都是从当前子类开始寻找,若子类有相应方法则直接调用子类方法不再向上查找。子类调用函数时,若子类没有该方法,则一直向其父类逐个查找,知道找到相应方法,或者到object类,返回查找失败。子类调用函数时,若父类有该方法,但是子类无权访问。super.call()是从子类的父类开始向上查找,子类有此方法也不调用。package 后面接类当前所在的包,而且必须放在类的最上面,只有一句。后面四种关系是看该变量是在哪个类里定义的,与其本身变量所处类无关。super是当前子类的父类(不仅仅是直接父类)的类引用。
2024-06-25 00:02:04
881
原创 值传递和引用传递、可变参数、作用域、构造函数、this关键字、对象的定义和使用
定义格式为 class + 类名 此时的类名就相当于新定义的一个数据类型(作用如同 int)创建一个class对象,格式:类名 + 类变量名 = new 类名();用变量名.属性的方法,可以改变属性值,不改变为默认值(String 为null,int 为0)在对象内定义方法(或者称函数)格式为:关键字 + 返回值类型 + 函数名 +(参数)+函数体p1.name = "小明";System.out.print("名字是:" + p1.name + "\n年龄是:" +p1.age)
2024-06-24 23:57:10
1168
原创 java 第四天
方法一:int a[][] = {{1,2,3},{4,5,6}};二行三列数组静态方法二:int a[][] = new int[2][];二行x列待定数组动态在一次定义单个二维数值时:三者完全等价但是在定义多个二维数组时该定义的含义是定义了一个一维数组a,一个二维数组b,它是把int[]看做是定义类型,编译通过int []a,b;或者int a[],b[];与上面相似,这这时定义的是两个一维数组,编译通过int[]a.[]b;编译失败int a,[]b;
2024-05-19 17:34:09
253
1
原创 运算符和进制转换
逻辑运算符分为逻辑与(&)和逻辑或(|)还有一组是短路与(&&)和短路或(||),一般使用短路与和短路或取反操作符!(boolean型),括号内结果为true,!(true)其返回结果就位false,反之为true异或操作:(boolean型) ^ (boolean型),两者相异,结果返回true。:(true) ^ (false )或者(false) ^ (true );反之返回false。:(true)^ (true)或者(false)^ ()
2024-05-13 20:07:53
1168
原创 java基本数据类型、类型自动转换
double result = c + i + d //ok依据char -> int -> float ,等号右边结果为float,赋值给double类型。//ok 相当于把b+11的int型强制转换为byte再赋值给b。定义并赋值byte时,如果赋值常量,首先判断是否符合byte范围,如果是就ok,不考虑默认int。//错误,s-9转换为int,相当于把int赋值给short报错。//错误b+11为int型,相当于把int赋值给byte报错。//错误s+b为int型,不可赋值给short。
2024-05-11 19:37:30
1352
2
原创 java自学记录
修改源文件后注意要重新生成.class文件,最终执行的是.class文件。字节码文件,class文件在安装有jre的平台都可运行。
2024-05-09 23:28:53
598
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人