面向对象程序设计(五)

来源:互联网 发布:repo.maven.apache 慢 编辑:程序博客网 时间:2024/06/10 08:27

       回顾:

             栈内存: 保存的是对象的名字;

             堆内存: 保存的是对象所指向对象的具体内容 --> 也就是属性

             全局代码区: 保存的是所有的方法.

 

      我们在类中所写的一个属性, 如果声明为static类型的, 则表示此属性为公有属性, 即 所有对象都可以访问该属性.

那就是另外一个区域了 全局数据区, 存放的是static类型的属性.

 

      对于static 类型的 属性 或者 方法, 我们需要修改的时候 , 建议是使用 类名调用修改, 即

      类名.static 属性

      类名.static 方法

 

     

 

      这里Person类中的一个 static 属性 name 在 非静态方法中 setName() 中是可以被调用的 并赋值的.

 

那么非静态属性在静态方法中又是怎么表现的呢?

javac Test.java  之后,  控制台提示说 无法从静态上下文中引用非静态变量 age

 

可见 :

      静态方法是不能够调用非静态属性或者方法的

      而非静态方法是可以调用静态属性或者方法的

 

下面说到代码块:

      共分为四种:

            普通的代码块: 是写在方法之中的

            构造块:  构造块是直接写在类中的, 而且它是优先于构造方法被执行的, 能被执行多次.

            静态块:  静态块是用 static 包围起来的一段代码块,优先于构造块和构造方法被执行, 但是 像 多次

   new 类名()  .... new 类名() 的方式 .

 

      类在运行的时候要运行main() , main() 想要被外界看到就一定要使用 public 类型, 我使用 protected 类型, 控制台提示我说  Main Method not public

      程序运行的时候使用的都是类的名称,  如 java Test . 证明了调用main方法的时候,  而且main方法都是static 类型的

说明了在执行的时侯 这个static 类型的方法是被自动调用的.

      String [] args 表示运行输入的参数

             比如: java Test2  后面跟上 zero 123 456 789

             控制台中都会进行输出的

       System.exit(1) 就是表示程序不再继续向下执行.

原创粉丝点击