类和对象以及数组工具类的常用方法

news/2025/1/12 22:03:35/

文章目录

  • 一、类和对象
  • 二、数组工具类的常用方法

一、类和对象

1、对象没人引用时,会被自动回收
2、对象一定在堆上,引用变量不一定在栈上
3、this表示当前对象的引用,谁调用eat方法(eat方法里有this),谁就是this。this.data访问当前对象的属性,this.func()访问当前对象的方法
4、初始化对象成员变量和给对象成员变量赋值的区别,运用构造方法(该方法没有返回值类型,方法名和类名相同)初始化对象成员变量。用this()调用当前类当中的其它构造方法,()中可有参数,看()中的参数匹配到哪个构造方法则调用哪个构造方法,只能在当前的构造方法内部使用,只能放在第一行。可用idea生成构造方法,鼠标右击找到Generate,再点击Constructor
5、类中没有package语句,则该类被放到一个默认的包中,这个默认的包是src。default(默认包访问权限),如成员变量前没有加访问修饰限定符,同一个包下的不同类之间可以相互访问这个成员变量(这个是default的最大访问权限)
6、静态成员变量和静态成员方法(static修饰,也叫类变量和类方法,static不能修饰局部变量),通过类调用(类.×××),不依赖于对象。静态方法内部不能直接调用非静态成员方法(调用则要new一个对象,再通过对象的引用调用)或者直接调用非静态成员变量,static修饰的方法里面不能使用this,因为静态成员变量和静态成员方法不依赖于对象,而this是当前对象的引用。非静态方法内部能直接调用静态成员方法。非静态方法之间可以直接调用。
7、成员变量(属性、字段),成员方法(行为)。
8、静态成员变量一般不放在构造方法中来初始化,构造方法中初始化的是与对象相关的实例属性。用静态代码块(static加花括号)对静态成员变量进行初始化,静态代码块在类里面,方法外面。先执行静态代码块,再执行构造代码块(实例代码块),再执行构造方法,静态代码块只执行一次。静态代码块只要类被加载就会被执行,构造代码块(实例代码块)实例化对象的时候才会被执行。

class Student{private String name;private String gender;private static String classRoom;//实例代码块{this.name = "ZhangSan";this.gender = "man";System.out.println("instance");}//静态代码块static {classRoom = "4";System.out.println("static");}public Student(){System.out.println("Student init");}public static void main(String[] args) {Student s1 = new Student();Student s2 = new Student();}
}

在这里插入图片描述
9、package语句用于说明本文件处于哪个包当中
10、实例化对象时。父类静态代码块先于子类静态代码块执行,静态代码块先执行且只执行一次;然后执行父类构造代码块(实例代码块)和父类构造方法;最后执行子类构造代码块(实例代码块)和子类构造方法。先执行父类和子类静态的,再执行父类的实例和父类的构造,最后执行子类的实例和子类的构造
11、final修饰变量后,变量变成常量,常量不能被修改,如final修饰数组名,则数组名这个引用变量中存储的值(地址)不能被修改;final修饰的类叫密封类,密封类不能被继承
12、protected修饰,访问不同包之间的子类(这个是protected的最大访问权限)
13、组合:如在一个类当中用其它类作为类型定义变量(在类中用别的类型的对象作为成员)。能用组合尽量用组合
14、实例化对象(new Base())时相当于调用了一个构造方法
15、new Rect()是匿名对象,匿名对象的缺点是每次使用都要重新实例化

Rect rect = new Rect();
rect.draw();
rect.draw();
new Rect().draw();
new Rect().draw();//每次使用都要重新实例化

二、数组工具类的常用方法

Arrays.sort(arrays);//数组排序,arrays是数组名,即数组的引用System.out.println(Arrays.toString(arrays));//将数组转换为字符串输出int[] copy = Arrays.copyOf(array,array.length*2);//拷贝array数组,拷贝的长度为array.length*2,如果拷贝的长度太长则扩容
int[] copy = Arrays.copyOfRange(array,13);//拷贝array数组中1到3下标的内容,但因为Java[1,3),所以拷贝到的只是1下标和2下标的内容,如果拷贝的长度太长则扩容System.out.println(Arrays.binarySearch(array,15));//Arrays工具类实现的二分查找,在数组中找15
Arrays.binarySearch(int[] a, int fromIndex, int toIndex, int key)//在数组指定范围内进行二分查找boolean flg = Arrays.equals(array1,array2);//比较两个数组对应下标的数据是否一样int[] arr = new int[]{1, 2, 3};
Arrays.fill(arr, -1);//帮数组填充数据,这里将数组内容全部填充(这里是修改)为-1
fill(int[] a, int fromIndex, int toIndex, int val)//在数组指定范围内进行填充,指定的范围是[)

http://www.ppmy.cn/news/228836.html

相关文章

第2章:SpringMVC的@RequestMapping注解

一、SpringMVC搭建框架 1.创建一个Maven程序的步骤 ①在pom.xml导入maven依赖 <!--打包方式是war--> <!--war 包通常用于网站&#xff0c;它是一个可以直接运行的 web 模块--> <packaging>war</packaging> <dependencies><!-- SpringMVC --…

长虹智能电视怎么进入工程模式

亲测&#xff0c;CHANGHONG 长虹 32D2060G

长虹彩电进入维修模式

先音量最小&#xff0c;再找按静音&#xff0c; 再按MENU 退出维修模式也是按MENU

ioh3000t长虹盒子刷机固件 S905LB-高安-xian刷固件

固件特点&#xff1a;&#xff08;不是海 思芯片&#xff09; 1、调出原厂固件wifi&#xff0c;开放软件安装&#xff1b; 2、修改dns&#xff0c;三网通用&#xff1b; 3、大量精简内置的没用的软件&#xff0c;多出大量的存储空间&#xff1b; 4、去除应用安装限制&…

长虹电视U1机芯(49U3C等型号)开机卡界面进不去系统解决,刷机方法及固件下载。

适用机型&#xff1a;确认自己型号是否为U1机芯 1、将百度云盘的文件下载到U盘&#xff0c;软件放到U盘的根目录&#xff0c;U盘格式&#xff1a;FAT32.2、将U盘接入电视的 USB接口。 2、将电视关机&#xff0c;交流断电&#xff08;拔掉电源&#xff09;。按住电源按键&#x…

长虹LED42C2080i液晶电视(ZLM41机芯)HDMI端输出无图像

长虹LED42C2080i液晶电视&#xff08;ZLM41机芯&#xff09;HDMI端输出无图像 2022-01-19 14:13:40作者&#xff1a;杜云鹏224我要评论 接修一台长虹LED42C2080i液晶电视(机芯:ZLM41 )HDMI端输出无图像。据用户反映&#xff0c;该机使用高清机顶盒没有图像显示&#xff0c;但T…

记一次长虹IHO3000拆机学习

一、准备材料 1、软件&#xff0c;win7_32系统&#xff0c;Putty.exe &#xff08;使用com19,波特率是115200&#xff09; 2、硬件&#xff0c;PL2303 USB转TTL模块FT232线&#xff0c;长虹机顶盒&#xff08;实际是广东地区电信4k机顶盒&#xff09;&#xff0c;PC电脑 二、接…

长虹电视免降级安装第三方应用

长虹电视新系统限制第三方应用的安装&#xff0c;相信很多用户都曾苦恼&#xff0c;只能沦为广告机或者投屏仪&#xff0c;分享一个免降级教程&#xff0c;毕竟刷机有风险&#xff0c;这里演示的系统版本是65Q6K&#xff08;V3.00115&#xff09; 准备工作&#xff1a;1.通过应…