学习java第二天总结(2)

一,java的输入方法,首先创建一个Scanner对象,用system.in初始化它,然后调用Scanner的相关方法。格式化输出时输入百分为使用%%。

二,if(条件)  要注意边界,比较浮点数时不用==,让两者之差小于一个临界值即可,两个引用对象,只有所引用的对象一致时才相等。如果两个引用对象初始化时内容是一样的,则==是成立的。如果初始化时值不同,则==不成立,要判断其当前内容是否一致,则使用equal();调用equal()时,调用对象需要不为null。

三,只有有break;语句,case的顺序不影响程序逻辑。如果有两种case的处理方法是一样的,那么可以这样case 1: case : 处理 break;关于switch()语句漏写default或break,可以在ide中增加相应提示。java12后,switch有更简洁的语法

case(0)->{}使用指向符,不用写break;没有穿透效应。case(0)->0;default->2;如果在语句块中,语句太多,可以使用yield 关键字标识一个返回值,switch 将会返回它。

四,使用循环,while和for时一定要注意临界条件下是否会多操作或者少操作了一些东西。

五,圆周率算法 pi/4=1-1/3+1/5-1/7+1/9....  特别注意,如果要让两数相除得到的是浮点数,分子分母中必有一数得是浮点数

六,数组可以使用Arrays.toString()来打印,使用Arrays.sort()对他进行排序,使用Arrays.deepToString()可以对二维数组打印,二维数组是数组的数组,三维数组就是二维数组的数组。

七,面向对象的概念 类 实例 方法  实现方式包括继承和多态

八,把一组数据聚合于一个对象,就形成了封装,而暴露内部字段给外部,会导致一些无意义不可控的赋值,因此通常把内部字段访问属性设为private。使用方法来控制内部数据,添加了一层间接性,使得更加安全和可控制。

九,private方法用于内部调用,客户只要关心接口,内部的实现可以多样。

10,方法的参数可以是可变参数,如 void setNames(String... names){this.names=names}可变参数的实质就是数组,可变参数必须是最后一个参数。传参时采取一一对应的原则,这个可变参数可能是空字符串数组,即无参。

11,普通内置传进方法的参数时,采用的是按值传递,而引用类型传进参数时,传进去的是引用,调用函数和函数内指向的都是同一对象。但是String是不可以修改内容的,对string有任何修改都是重新指向另一块内容,调用函数和函数内的string引用不会互相影响。对引用重新赋值,是让引用更改所指,这时调用函数和被调用函数不会互相影响。如果是仅仅改变引用指向的对象本身,则会互相影响。

12,构造方法与c++相似可以有多个,有默认值。不同处在于可以在一构造方法内调用之前写过的构造方法如已经为Person(int ,string),则在Person(int)中,可以调用this(int,"18");

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值