Java第二阶段JavaSE1

        第一天

一、Object类:java.lang包下,是所有类的超类,方法要被重写

1.toString()方法:

        1)重写原因:

        1.输出对象信息更准确
        2.连接字符串的时候内容有意义

2.equals()方法

        1)作用:判定两个对象的内容是否相同

        2)子类不重写equals时,Object中的equals内部还是"=="比较,因此不重写无意义

PS:

        java提供的类大多是重写过了toString和equals方法.

        只有我们自己定义的类在使用时出现上述情况需要自行重写两个方法

        例如:String,它的toString和equals方法已经重写过了.

二、包装类

1.包装类出现的原因是为了解决基本类型不能直接参与面向对象开发的情况。使基本类型可以以“对象”的形式存在。

2.Integer包装类

int i = 128;
//int转换成Integer类型
Integer i1 = Integer.valueOf(i); //不推荐使用new Integer()
Integer i2 = Integer.valueOf(i); //在byte范围内,i1==i2为true
int d = i1.intValue(); //Integer转换成int类型
double dou = i1.doubleValue(); //Integer转换成double类型
/*
    注:小转大没有问题,但是大转小可能会出现溢出现象,比如Integer转换成byte类型
*/

3.包装类常见功能

1)最大最小值

//最大最小值
int imax = Integer.MAX_VALUE;
int imin = Integer.MIN_VALUE;

2)字符串转换基本数据类型

包装类提供了一个静态方法,可以将字符串转换为对应的基本类型,前提是该字符串正确描述了基本数据类型可以保存的值,否则会抛出异常:

数字        格式        异常

NumberFormatException

//字符串转换为对应基本数据类型
String line = "123";
String line2 = "123.123";//需要注意:"123.123"是不能转换为整数的
int d = Integer.parseInt(line);
System.out.println( d );
double dou1 = Double.parseDouble( line );
double dou2 = Double.parseDouble( line2 );
System.out.println( dou1 );
System.out.println( dou2 );

4.自动拆/装箱(jdk5以后的性能)

1)基本数据类型直接赋值给包装类,称为自动装箱,因为编译器自动加了valueOf()

a = 123;
Integer i = a; //自动省去Integer.valueOf(a) 自动装箱

2)包装类直接赋值给基本数据类型,称为自动拆箱,因为编译器自动加了intValue()

Integer i = Integer.valueOf(123);
int a = i; //编译器自动添加i.intValue(),自动拆箱

三、File

1. file 文件类

* 该类的每一个实例可以表示硬盘上的一个文件或目录(实际表示的是一个抽象路径)

* 通过File我们可以:

        1)访问其表示的文件或目录的属性信息(名字,大小等)

        2)创建,删除文件或目录

        3)访问一个目录中的子项 * 但是不能访问文件数据

2.实际开发中几乎不会使用绝对路径去定位文件或目录,都是使用相对路径的。

        -因为它有更好的跨平台性。

        -例如:"./" 表示当前目录,具体是哪里要看当前程序的运行环境而定,比如我们现在在IDEA里执行程序时,IDEA规定当前目录就是当前程序所在的项目目录.

3.功能

        1)new File("./文件名");

        2)getName()--获取名字

        3)length()--获取长度(单位是字节),注:返回的是long值

        4)canRead()--是否可读, canWrite()--是否可写, isHidden()--是否隐藏

        5)exists()--检测是否存在该文件

           createNewFile()--创造新的file文件

        6)delete()--删除文件或空目录

        7)mkdir()--创建目录(只能一层)

           mkdirs()--创建目录(父目录全都创建)

        8)boolean isFile()---判断当前File表示的是否为一个文件

        boolean isDirectiry()--判断当前File表示的是否为一个目录

        listFiles()----返回当前目录的所有子项,可以用File数组存储

//1.访问当前项目目录下的demo.txt文件
//File file = new File("./demo.txt");

//2.获取名字
String name = file.getName();

//3.获取长度(单位是字节).注:返回的是long值,因为int最大值无法表示一个文件的最大容量的字节数
long length = file.length();

//4.读/写/隐藏
boolean cr = file.canRead(); //read 读
boolean cw = file.canWrite(); //write 写
boolean ih = file.isHidden();  //hidden 隐藏

//5.相对路径中,"./"可以忽略不写,默认就是从"./"开始
File file = new File("test.txt");
//boolean exists() 判断当前File表示的文件或目录是否真实存在,存在则返回true
if( file.exists() ){
    System.out.println( "该文件已存在!" );
}else{
    file.createNewFile(); //create创造 new新的 file文件
    System.out.println( "该文件已创建!" );
}

//6.将当前目录下的test.txt文件删除
File file = new File("test.txt");
if( file.exists() ){
    file.delete();
    System.out.println( "文件已删除" );
}

//7.当前目录下新建一个目录:demo
File file1 = new File("./demo");
File file2 = new File( "./a/b/c/d/e/f" );
if( file1.exists()  ){
    System.out.println( "该目录已存在" );
}else{
    file1.mkdir(); //make 做,造
}
if( file2.exists()  ){
    System.out.println( "该目录已存在" );
}else{
    file2.mkdirs(); //directories
}

//8.获取当前目录中的所有子项
File dir = new File("."); //.为当前目录
/*
    boolean isFile()
    判断当前File表示的是否为一个文件

    boolean isDirectory()
    判断当前File表示的是否为一个目录
 */
if( dir.isDirectory() ){
    //list:列表
    File[] subs = dir.listFiles();
    for( int i = 0 ; i < subs.length ; i++ ){
        System.out.println( subs[i].getName() );
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值