zoukankan      html  css  js  c++  java
  • static相关应用,对象数组

    如果想要将一个属性设置为公共属性,就要用static修饰。static修饰的内容在公共的全局数据区。

    所有的对象都指向全局数据区。

    静态属性可以通过类名称直接调用:类名称.静态属性

    静态方法可以通过类名称直接调用:类名称.静态方法()

    静态方法只能调用静态属性或调用静态方法,不能调用非静态的方法或属性。

    使用静态方法时需要注意:

    静态的方法只能调用静态的方法或静态的属性;非静态的属性和方法可以调用静态的属性和静态的方法;静态属性和方法可以在没有实例化对象的时候调用,而类中普通方法和普通属性,肯定只有在对象实例化之后才能调用。

    如果主方法中要想直接调用方法,那么方法就必须有static关键字。

    public class StaticDemo05{

           public static void main(String args[]){

              fun() ;

           }

           public static void fun(){

                  System.out.println("Hello World!!!") ;

           }

    };

    如果没有static那么方法就要通过对象来调用。

    public static void main(String  args[])

    public:表示最大权限

    static:静态可以由类名称直接调用,表示可以由类名称直接调用

    void:表示没有返回值

    String  args[]:表示在java 命令中设置参数,java 类名   参数1  参数2   参数3

    此形式输出的每个参数自动换行输出

    若想在接收的参数连接在一起输出,则将参数使用双引号括起来,表示一个完整的参数。

    程序的内存分为:

    栈内存:对象名称,实际上时对象对堆得引用地址

    堆内存:属性的内存空间

    全局代码区:保存所有的操作方法

    全局数据区:保存所有的static属性。

    十一,程序分析,static相关应用,对象数组

    1)对象数组

    主方法中不能编写过多的代码

    对象数组:就是包含了一组对象

    动态声明对象数组:类名称  对象数组名称[]=new 类名称[长度]

    声明后对象数组中的堆空间是空,然后使用循环对数组进行实例化。

    静态初始化对象数组:类名称  对象数组名称[]={new  类名称(参数),new  类名称(参数)}

    (2)构造方法私有化

    构造方法有权限

    使用private关键字可以声明构造方法,但是声明后外部就无法直接进行对象的实例化操作。

    若想在外部依然进行构造方法,则私有的方法能在类中的另外一个方法中调用,然后在外部调用这个方法即可,若想调用私有方法则必须在类中创建一个对象。如果一个类只能有一个实例化对象的话,包含构造方法的方法必须是静态的,那么类中调用私有方法的对象也要是静态的。

    class Single{

           private static Single instance = new Single() ;

           private Single(){     // 将构造方法私有化

           }

           public static Single getInstance(){

                  return instance ;

           }

           public void print(){

                  System.out.println("hello world!!!") ;

           }

    };

    public class SingleDemo{

           public static void main(String args[]){

                  Single s = null ;             // 声明对象

                  s = Single.getInstance() ;             // 实例化对象

                  s.print() ;

           }

    };

    如上成为单例设计。

    (3)static的相关应用

    static修饰的方法在公共代码区或属性在公共数据区。

    class Person{

           private String name ;

           private static int count ;

           public Person(){

                  count++ ;

                  this.name = "NONAME - " + count ;    // 通过"NONAME"自动命名

           }

           public Person(String name){

                  this.name = name ;

           }

           public String getInfo(){

                  return "姓名:" + this.name ;

           }

    };

    public class StaticDemo08{

           public static void main(String args[]){

                  System.out.println(new Person().getInfo()) ;

                  System.out.println(new Person("A").getInfo()) ;

                  System.out.println(new Person("B").getInfo()) ;

                  System.out.println(new Person().getInfo()) ;

           }

    };

  • 相关阅读:
    python 并发编程 多进程 互斥锁 目录
    python 并发编程 多进程 互斥锁
    python 并发编程 多进程 守护进程
    python 并发编程 多进程 Process对象的其他属性方法 terminate与is_alive name pid 函数
    python 并发编程 多进程 Process对象的其他属性方法 join 方法
    python 并发编程 多进程 目录
    POJ 2253
    POJ 2255
    POJ 2250
    POJ 2248
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1941530.html
Copyright © 2011-2022 走看看