鱼C论坛

 找回密码
 立即注册
查看: 2728|回复: 0

[学习笔记] Java暑期学习Day15

[复制链接]
发表于 2017-7-19 23:14:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
今天是第15天,希望能坚持记录学习


                               
登录/注册后可看大图



不定长度自变量(JDK5之后支持)
  1. public class MathTool {

  2.         public static int sum(int... numbers) {

  3.                 int sum = 0;
  4.                 for (int number : numbers) {
  5.                         sum += number;
  6.                 }
  7.                 return sum;

  8.         }

  9. }
复制代码

  要使用不定长度自变量,声明参数列时要在类型关键字后加上...,在sum()方法通过用增强式for循环来取得不定长度自变量中的每个元素。

  使用不定长度自变量时,方法上声明的不定长度参数必须是参数列的最后一个使用两个以上不定长度自变量也是不合法的。


设计模式
  设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。
  在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 的书,该书首次提到了软件开发中设计模式的概念。
四位作者合称 GOF(四人帮,全拼 Gang of Four)。

  
   A.单例模式
  单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。



(注意点:
    1、单例类只能有一个实例。
     2、单例类必须自己创建自己的唯一实例。
     3、单例类必须给所有其他对象提供这一实例。)

    
     instance:n.情况; 例子,实例; 要求,建议; [法] 诉讼手续;     vt.举…为例;


      enclosing   v.(用墙、篱笆等) 把…围起来( enclose的现在分词 ); 把…装入信封; 附入; (尤指墙、篱笆等 ) 围住;


      qualify        vt.(使) 具有资格; 有权; 达标;
                         vt.限定,修饰; 描述,形容; 使合适; 证明…合格;
                         vi.合格或成为合格; 取得…的资格;



       allocation  n.配给,分配; 分配额(或量); 划拨的款项; 拨给的场地;


【报错记录】
Multiple markers at this line
- No enclosing instance of type SingleTonDemo is
  accessible. Must qualify the allocation with an enclosing
  instance of type SingleTonDemo (e.g. x.new A() where x is an
  instance of SingleTonDemo).
- The value of the local variable ton1 is not used



  1. public class SingleTonDemo {

  2.         public static void  main(String []args){
  3.                 //SingleTon ton1 =new SingleTon();
  4.                 //SingleTon ton2 =new SingleTon();
  5.         SingleTon ton1 = SingleTon.getInstance();
  6.         SingleTon ton2= SingleTon.getInstance();
  7.        
  8.         }}
  9.        
  10.         class SingleTon{
  11.                
  12.                 //private  static  SingleTon singleTon=new SingleTon();
  13.                 private  static  SingleTon singleTon=null;
  14.                
  15.                 private  SingleTon(){
  16.                         System.out.println("SingleTon");
  17.                 }
  18.                
  19.                 public static SingleTon getInstance(){
  20.                         if(singleTon==null){
  21.                                 singleTon=new SingleTon();
  22.                         }
  23.                         return singleTon;
  24.                 }
  25.                
  26.                                
  27.         }

  28.        
复制代码


结果:SingleTon


final关键字的特点
   A.final可以用来修饰变量、方法、类
       final修饰的方法,表示该方法不能被重写
       final修饰的类,表示最终类,不能被继承


   B.final修饰的变量是一个常量。一旦赋了值就不能修改。(常量一般都和static关键字配合使用)
  

  1. public class FinalDemo {
  2. public static void main(String[] args) {
  3.         A a=new A();
  4.         a.showNumber1();
  5.         C c=new C();
  6.         c.showNumber2();
  7.         final A a2=new A();
  8.         //a2=new A();The final local variable a2 cannot be assigned.
  9.         //It must be blank and not using a compound assignment
  10.         //final用在引用变量上,代表此引用变量只能引用一开始所引用的
  11.         //对象,中途不能改变指向
  12.         a2.number2=5;
  13.         a2.showNumber2();
  14. }

  15. }
  16. //常量类是不能被继承的
  17. class A{
  18.         public final int number1=1;
  19.         public int number2=2;
  20.         public void showNumber1(){
  21.         //        number1++;The final field A.number1 cannot be assigned
  22.                 System.out.println(number1);
  23.         }
  24.         //子类不能对父类中的常量方法进行改写(重写)
  25.         public void showNumber2(){
  26.                 System.out.println(number2);
  27.         }
  28.        
  29. }

  30.    class C extends A{
  31.            public void showNumber2(){
  32.                    System.out.println(number2);
  33.            }
  34.    }

复制代码


内部类
        将一个类定义在另一个类的内部。内部的类称之为内部类。


主要特点:


   A.内部类可以很好地实现隐藏,可以使用protected、public、private修饰符
   B.内部类可以直接访问外部类的所有成员,包括私有的成员。
(通常非静态内部类会声明为private,这类内部类是辅助类中某些操作而设计,外部不用知道内部类的存在。
  内部类也可以声明为static)


  C.内部类可以解决一些问题,比如间接地去实现多继承。
    可以避免修改接口而实现同一个类中两种同名的调用。




传值调用(Pass by Value)
  传值调用是指方法在调用参数时,不是对原参数进行操作,而是创建参数的拷贝并对其进行操作,这种调用有利于保护数据。






评分

参与人数 1鱼币 +5 收起 理由
小甲鱼 + 5

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 14:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表