Java基础 学习笔记2

 java基础 学习笔记 2:

 主要知识点:

     1. Java中类的构造方法理解

     2. 全局变量与局部变量

     3. setter与getter方法

     4. 可变参数,

     5. 单例模式(饿汉式与懒汉式)

详细笔记:

1,构造方法:1.名字和类名一模一样
                 2.没有返回值类型,连void都没有
                 3 .每一个类都有一个空的隐式的构造方法
                 4.如果手动的去写一个显式的构造方法,那么隐式的构造方法就不存在了
                 5.构造方法的作用就是用来创建对象的,不能调用(对象. 方法名();)

  作用:可以用来初始化成员变量 (创建一个显式的方法)

2,全局变量:类中声明的;

 静态变量 : static关键字修饰。//static见下注 1;

 常量:final static 关键字修饰,值不可改变。

 局部变量:方法,流程语句中的;

 作用域:指变量的使用范围。从声明开始到所在大括号结束。

 Scanner(ScannerDemo.java)是java.util包下的一个工具类,它的作用是用来接收控制台输入的信息。

3,setter与getter方法:

一个类中(Student),若private声明私有的值,则需要用setter,getter方法提供外界访问;

class Student{

    private String name;

        getter(用于获取):

        [非私有修饰符] 字段类型 get字段名称(首字母大写)()

        {

            return 字段名;

        }

    Public void setName(String n)//name的setter和getter方法        {

            this.name=name;       }

        setter(用于设置):

        [非私有修饰符] void set字段名称(首字母大写)(字段类型 变量)

        {

            字段=变量;

        }

public String getName()

       {

return name;

        }

4,可变参数,

从Java5开始,出现了可变参数。

特征为:参数个数可变,可以传递0到N个;

必须为方法最后一个参数;

调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。

代码演示:

Public static void main(String[] args)

    {

int array[]={2,3,1,5,4,6};

         System.out.println(Arrays.toString(array));//注意Arrays.toString类方法的用法,见下注 2;

         System.out.println(getSum(array));

//System.out.println(getSum(2,3,1,5,4,6)); 

  }

staticint getSum(int array[])//计算元素之和    {

int sum=0;

for(int i=0;i<array.length;i++)

             sum+=array[i];

return sum;

    }

输出结果都为21,区别在于参数可变,

5,单例模式:保证整个项目运作期间某一个对象有且只有一个。

class Singleton1//饿汉式

  {

      private Singleton1(){}//先把构造方法私有化,不允许外界创建对象

     private static final Singleton1 instance=new Singleton1();

     /*  饿汉式就是声明的时候就赋值了

         缺点为加载的时候就需要开辟空间,需要损耗性能,加载慢。

      */

      public static Singleton1 getInstance()

      {

         return instance;

     }

 }

class Singleton2//懒汉式

 {

     private Singleton2(){}

    private static Singleton2 instance;//=null

     /*  懒汉式就是声明的时候没有赋值

         缺点为线程不安全

     */

     public static Singleton2 getInstance()

     {

         if(instance==null){

             instance=new Singleton2();}

         return instance;

     }

 }

 class SingletonDemo

 {

     public static void main(String[] args)

     {

         Singleton1 s1=Singleton1.getInstance();

         Singleton1 s2=Singleton1.getInstance();

        System.out.println(s1==s2);//一个对象有且只有一个

 

         Singleton2 s3=Singleton2.getInstance();

         Singleton2 s4=Singleton2.getInstance();

         System.out.println(s3==s4);//一个对象有且只有一个

     }

 }

总结,比较:
         饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变
         懒汉式,县城不安全,他是在需要的时候才创建对象,而饿汉式在加载类时候就会创建,

注:

1,static里面的数据是不能重复的,每一个对象用的成员变量都是一样的

类名.类变量名
类名.类方法,都是不需要创建对象直接使用的

main方法为什么是static?

main方法是程序的入口,在它执行之前没有任何任何对象被创建,否则就不是程序的入口了。访问一个对象的属性和方法一定要有对象才能访问。
不加static的一定要有对象的才能调用。

2,类 Arrays:此类包含用来操作数组(比如排序和搜索)的各种方法

toString(short[]a):返回指定数组内容的字符串表示形式。

此题目中,Arrays 类就是在遍历你传进去的数组,调用的是你数组元素的toString方法。

相当于对于一个数组arr[],打印输出时需要for遍历,而调用Arrays.toString(arr)就可以直接输出了,即:int array[]={2,3,1,5,4,6};

System.out.println(Arrays.toString(array));

posted @ 2015-05-21 21:51  帅少1993  阅读(127)  评论(0编辑  收藏  举报