极客java06

1.方法和属性的可见修饰符

  • 可见修饰符用在类,成员方法,构造方法,静态方法和属性上,其可见性的范围时一样的
    • public :全局可见
    • 缺省:当前包可见
    • private:当前类可见
  • 理解访问修饰符:不只是为了限制不让人用,更为了保护数据,成员变量应该是private,不需要让外部使用的方法都是private的
  • 有些时候会把构造方法定义成private,然后使用静态方法调用构造方法,这样的好处时,可以通过代码检查每个属性值是否合法
  • public的方法类似一种约定,外面的代码可以使用就不能乱改
  • 对于private方法,外面调不到,修改不会影响外面
  • 非public 类文件名可以与类名不同

2.重新认识老朋友Math

  • math.random()生成随机数
  • math.abs取整数
  • math.round取最近的的整数

3.重新认识老朋友Scanner

  • priveat不仅仅时限制使用,而是为了提供规范的方法
BigInteger:很大的数
1
2
BigInteger bigInteger = scanner.nextBigInteger();
bigInteger.add(值)

4.最熟悉的陌生人,String上

  • String的length是一个方法,不是属性
  • .toUpperCase:转化为大写
  • .toLowerCase:转化为小写
  • .charAt(index):找到index位置的字母
  • .substring(3):截取索引三之后的字符串(包括3)
  • .sbustring(1,3):截取1到3(不包括3)
  • char[] char = content.toCharArray:转换为字符数组
  • String[] s = chotent.split(“ _ “):将content字符串按照_分割开来
  • int index = content.indexOf(“ _ “):寻找content字符串中第一个_的索引
  • int index = content.lastIndexOf(“ _ “):从后向前找
  • content.contains(“apple”):寻找字符串content中是否含有apple
  • content.startsWith(“Orange”):判断字符串是不是以Orange开头
  • content.endsWith(“Apple”):判断字符串是不是以Apple结尾
  • content.euals(content2):判断两个字符串是否相等(不区分大小写)
  • content.equalsIgnoreCases(content2):判断两个字符串是否相等(区分大小写)
  • content.trim() :处理掉字符串开头和结尾的空格
  • content.replace(“a”,”!”):用!替换a

6.main方法和System类

main方法
  • main方法只是一个静态的,有String[] 参数,没有返回值的方法而已
  • 特殊之处在与是程序的入口
  • 给main方法传递参数
  • 自己试着调用main方法
System类
  • system类中有很多系统相关的方法,最常用的就是in和out

  • 另一个最常用的就是读取时间

    • System.currentTimeMillis():获取当前时间(毫秒)返回值为Long
    • System.nanoTime():获取当前时间(纳秒)返回值同样为long
  • 通常在一段代码的开始和结束获取的时间相减就得到了代码运行时间

7.String类的好兄弟

  • StringBuilder是一个非常方便用来拼接和处理字符串的类,和String不同的是它可变
  • 对StringBuilder的操作方法,都会返回this自引用,这样就可以一直.下去
StringBuilder的常用方法
  • append()方法:向字符串追加内容
  • reverse()方法:反转字符串
  • toString()方法:转回String
  • delete(0,4):删除索引为4到4
  • insert(3,”LLL”):向索引为3的位置插入”LLL”,后面的向后移动

8.继承

  • 子类继承了父类方法和属性
  • 使用子类的引用可以调用父类的共有方法
  • 使用子类的引用可以访问父类的共有属性
  • 就好像子类的引用可以一物二用既可以做子类的引用,又可以做父类的引用

9.子类对象中藏着一个父类对象

  • 除了继承,我们也可以再Phone中添加一个商品的引用
  • 这样我们也实现了一个与继承类似的功能
  • 这样在自己类里,使用别的类的关系我们叫做”has a”的关系,也称之为组合
  • 具体到我们这个例子,“Phone”中有一个商品,但是Phone本身并不是商品
继承
  • 继承其实是一种”is a”的关系,也就是说,在你用类沟通的世界中,,子类是父类的一种特殊类别

  • 组合还是组合 ,是在设计java类的时候不得不面对的问题

  • XX到底是YY的一种,还是只是组合了YY

  • 在组合的条件下怎么限制一次只能购买一个手机

    • 首先不能修改MerchandiseV2这个类
    • 其次这个类可能根本不受你的控制
    • 如果限制改为10个所有的代码都要修改
  • 继承不是组合,继承不只是为了简单拿来父类的属性和方法

  • 继承不是通过组合的方式来实现的,继承更像融合

10.覆盖子类想要点不一样

  • 通过使用和父类方法签名一样,而且放回置也一样的方法,可以让子类fugaidiao父类的方法
  • 也就是说,子类并不是只能把父类方法拿过来,而且可以通过覆盖来替换其中不合适的方法
  • 属性是联动的,可能有特殊意义3
你的支持是我最大的动力!
0%