数组
1.数组静态初始化:
int[] array = new int[]{1,2,3};
数组静态初始化简写:
int[] array = {1,2,3};
2.数组的动态初始化
int[] array = new int[100];
3.二维数组静态初始化:
int[][] array = new int[][]{
{1,2,3},
{1,2},
{3}
} ;
4.二维数组动态初始化:
创建一个数组粒度为3,每个元素都是一个粒度为5的二维数组
int[][] array = new int[3][5];
→→→→→→→→→→🏮←←←←←←←←←
数组快速遍历方法foreach(编译器语法糖):
int[][] array = new int[3][5];
for (int[] item: array) {
System.out.println(item.length);
}
→→→→→→→→→→🏮←←←←←←←←←
可变个数形参(编译器语法糖,内部还是数组):
static void getNew(int ... args){
System.out.println(args.length);
}
//调用
getNew(1,2,3);
//或者
int[] array = {1,2,3,4};
getNew(array);
注意:可变参数必须作为方法的最后一个形参
→→→→→→→→→→🏮←←←←←←←←←
Java内置数组工具类Arrays:
int[] array = {1,2,34};
String result = java.util.Arrays.toString(array);
System.out.println(result);
类
如果类使用了public修饰符,必须保证当前文件名跟此类名相同
类构造器
构造器用于创建对象,必须跟new
一起使用
默认构造器特点:
1.构造器名称和当前所在类名称相同
2.不要定义返回类型
3.不要使用return
语句,默认返回当前创建对象的引用
4.无参数
5.无方法体
6.如果当前类有public修饰,则默认构造器方法也有public修饰,反之亦然。
如果我们显式创建了一个构造器,则默认构造器就会失效。
→→→→→→→→→→🏮←←←←←←←←←
package:
1.包名如何定义:
- 包名必须全部小写
- 自定义包名不能以java开头,跟系统类库冲突
- 企业开发中,公司域名倒着写,如果第一个为数字,则可以用
_
放在首位
格式:域名倒写,模块名,组件名
比如com._111.network.util
- 包中的类第一行必须写上
package 包名
类的简单名称为Login
,类的全限定名称为com._111.network.util.Login
→→→→→→→→→→🏮←←←←←←←←←
import:
在没有使用import
之前,只能使用全限定名来使用别的模块中的内容
使用import 全限定名
后,只需要使用类的简单名称即可
import java.util.Arrays;
class Untitled {
public static void main(String[] args) {
int[] array = {1,2,3};
String rest = Arrays.toString(array);
}
}
如果要引入包下的多个类,可以使用通配符*
:
import java.util.*;
→→→→→→→→→→🏮←←←←←←←←←
静态导入
把java内置库中的静态方法,像当前类中的静态方法一样使用:
语法import static 静态方法
import static java.util.Arrays.binarySearch;
class Untitled {
public static void main(String[] args) {
int[] array = {0,1,2,3,4,5};
binarySearch(array, 2);
}
}
同样可以使用通配符*
import static java.util.Arrays.*;
实际开发中,不推荐使用静态导入
→→→→→→→→→→🏮←←←←←←←←←
访问权限控制
1.private:只能在本类中访问,不写缺省
2.protected:表示子类访问权限,同包中可以访问,即使不同包,但是有继承关系也可以访问
3.public:表示全局的,在当前项目任何地方都可以访问
→→→→→→→→→→🏮←←←←←←←←←
JavaBean规范
1.类必须使用public修饰
2.必须保证有公共无参数的构造器
3.包含了属性的操作手段(给属性赋值setName
,获取属性值getName
)
→→→→→→→→→→🏮←←←←←←←←←
this关键字
在构造器中,this
指代当前构建的对象
在方法中,哪一个对象调用了this
所在的方法,this
就指代了哪一个对象
this
使用场景:
1.解决成员变量和参数之间的二义性,必须使用
2.同类中实例方法互相调用
3.将当前对象作为参数传递个另一个方法
4.将当前对象作为方法的返回值(链式编程)
5.构造器重载互调,this([参数])必须写在构造方法第一行
6.static不能和this一起使用 // 当字节码被加载进JVM后,static修饰的变量已经存在,但是此时对象还没有创建,没有对象,就没有this
class Untitled {
String name;
String age;
Untitled(){
System.out.println("默认构造器");
}
Untitled(String name){ // 重载构造器,上面默认构造器就不会被调用
System.out.println("构造器 name");
this.name = name;
}
Untitled(String name, String age){
this(name); // this语句必须是在构造器的第一行,表示调用上一个构造器,这个可以理解为便利构造器
this.age = age;
System.out.println("构造器 name age");
}
public static void main(String[] args) {
Untitled user = new Untitled("haha","12");
}
}
网友评论