码迷,mamicode.com
首页 > 编程语言 > 详细

【学习笔记】java面向对象程序设计3

时间:2015-04-06 21:32:41      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

一. 对象块

代码如下:

 1 public class TestObject {
 2     int i;
 3     int j;
 4     {
 5         System.out.println("对象块执行....");
 6         this.i = 1;
 7         this.j = 99;
 8     }
 9     
10     public TestObject(){
11         System.out.println("构造函数执行.....");
12         System.out.println("i = " +i);
13         System.out.println("j = " +j);
14     }
15     
16     public static void main(String[] args){
17         TestObject test = new TestObject();
18         
19     }
20 }

执行结果:

对象块执行....
构造函数执行.....
i = 1
j = 99

如以上代码, 在4~8行中, 为对象块.
从执行结果可以看出, 对象块优于构造函数执行, 用于对成员变量进行初始化操作, 而且, 通过this可以看出, 在对象被创建的时候, 对象块就执行, 可见, 对象块是属于对象的.

 

二. 静态块

代码如下:

1 public class TestObject {
2     static{
3         System.out.println("静态块被加载...");
4     }
5     
6     public static void main(String[] args){
7         
8     }
9 }

运行结果:

静态块被加载...

为什么main函数为空, 也能显示出这个结果呢? 因为main函数是一个主入口, 而这个入口执行前, 要先加载类, 而静态块是属于类的, 所以在类被加载的时候, 静态块就被执行.
静态块一般只执行一次.

好处用法: 对于一些常用的初始化的东西, 在程序开始时就进行初始化操作.(利用了只执行一次, 并且优于main函数的特点)

 

三. 包 package

每个类都要放在包里, 规范起来。包的命名推荐使用公司名称。比如google.com 可以这样命名包 com.google.项目名称.模块名称

包是严格的按照系统分类的来的,这点很重要, 也就是说,包是一个文件夹,一级一级这样下去,最后子文件是类文件.

包的导入, 用import 包名;

注意:在包与包内的类之间进行相互调用的时候,就要用到import导入, 继承一个其他包的类, 也要这么做.

一个猫类 继承了动物类. 注意在类前面有import把动物类的包给导入. 如下:

package com.abc.one;
import com.abc.two.Animal;

public class Cat extends Animal {
    static{
        System.out.println("A cat");
    }
    
    public static void main(String[] args){
        Cat cat = new Cat();
        cat.mathod();
    }
}

 

动物类:

package com.abc.two;


public class Animal {
    public static void main(String[] args){
        System.out.println("动物类");
    }
    public void mathod(){
        System.out.println("动物方法");
    }
}

 

运行 Cat.java文件的结果为:

A cat
动物方法

 

包的创建:

技术分享

 

技术分享 

两个不同包之间的调用, 用import包导入来实现.

 

四. 访问控制

技术分享

package com.abc.one;

public class Test {
    private int i;
    int j;
    protected int n;
    public int m;
}
package com.abc.two;
import com.abc.one.Test;

public class TestSmall {
    public static void main(){
        Test test = new Test();
        System.out.println(test.i);
    }
}

无法运行, 因为 i 私有类型.

 

【学习笔记】java面向对象程序设计3

标签:

原文地址:http://www.cnblogs.com/hlwyfeng/p/4396186.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!