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

一. 对象块

代码如下:

 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 私有类型.

时间: 2024-12-16 01:09:10

【学习笔记】java面向对象程序设计3的相关文章

JavaScript高级程序设计6学习笔记之面向对象程序设计

首先 JavaScript是没有类这个概念的 ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值,对象或者函数” 创建对象的方法: var person = new Object(); person.name = "niko"; person.age = 20; person.say = function(){alert(this.name);}; 上面的例子用对象字面量语法可以写为: var Person = { name : "niko"; a

Java学习笔记<3>面向对象相关

面向对象的基本思想 从现实世界客观存在的事务出发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方式,如抽象.分类 继承.聚合.多态等. 类和对象的关系 对象中存储了类规定的数据类型,并且对象可以调用类的方法. java面向对象 <1>对象是java程序的核心,一切皆对象. <2>对象可以看成静态属性(成员变量)和动态属性(方法)的封装体. <3>类是创新同一类型对象的模版,定义了该类型对象应具有的成员变量及方法. 类的定义 成员变量可以用java语言的任何一种

java学习笔记之面向对象static,final关键字

java学习笔记之面向对象static,final关键字 一.static关键字 1.概述: static静态的,被static修饰的成员属于类,不属于单个对象,被所有对象所共享,存在静态区中,静态的成员优先于对象加载到内存中. 2.statc修饰成员的使用方式:(被static修饰的成员变量有默认值) /* 1.可以通过对象直接使用,不推荐使用 2.通过类名调用静态成员 类名.静态成员变量 类名.静态成员方法 */ 3.static的特点 /* 1.在同一个类中,静态成员只能访问静态成员,非静

20145301《Java程序设计》实验二报告:Java面向对象程序设计

20145301<Java程序设计>实验二报告:Java面向对象程序设计 课程:Java程序设计 实验名称:Java面向对象程序设计 实验目的与要求: 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验内容: 使用TDD的方式设计关实现复数类Complex 程序设计思路: 需求分析: 复数运算需要分:实部和虚部. 需要运行四则运算,即加.减.乘.除四种运算.  需要用户有输入,所以调用了Scanner实例,i

2062326 齐力锋 实验四《Java面向对象程序设计Android开发》实验报告

北京电子科技学院(BESTI) 实 验 报 告 课程: 程序设计与数据结构  班级: 1623  姓名: 齐力锋 学号: 20162326 成绩: 指导教师: 娄嘉鹏/王志强 实验日期: 2017年5月26日 实验密级:非密级 预习程度: 优良 实验时间: 2 Hours 仪器组次: 必修/选修: 必修 实验序号: 04 实验名称:Java面向对象程序设计Android开发 实验内容 1.Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBI

C++ Primer 学习笔记_73_面向对象编程 --再谈文本查询示例

面向对象编程 --再谈文本查询示例 引言: 扩展第10.6节的文本查询应用程序,使我们的系统可以支持更复杂的查询. 为了说明问题,将用下面的简单小说来运行查询: Alice Emma has long flowing red hair. Her Daddy says when the wind blows through her hair, it looks almost alive, like a fiery bird in flight. A beautiful fiery bird, he

Java程序设计 实验二 Java面向对象程序设计

北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:李海空  学号:20135329 成绩:             指导教师:娄嘉鹏      实验日期:2015.5.7 实验密级:         预习程度:         实验时间: 仪器组次:          必修/选修:            实验序号: 实验名称:       Java面向对象程序设计 实验目的与要求:实验内容 1. 初步掌握单元测试和TDD 2.

20135234马启扬 实验二 Java面向对象程序设计

北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计  班级:1352  姓名:马启扬  学号:20135234 成绩:             指导教师:娄嘉鹏    实验日期:2015.5.7 实验密级:         预习程度:         实验时间:15:50--22:50 仪器组次:34         必修/选修: 选修            实验序号:02 实验名称:实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和T

Java面向对象程序设计

北京电子科技学院(BESTI)                                                                                 实     验    报     告 课程:Java        班级:1352        姓名:马悦      学号:20135235 成绩:              指导教师:娄嘉鹏              实验日期:2015.05.07 实验密级:            预习程度:    

2062326 齐力锋 实验二《Java面向对象程序设计》实验报告

北京电子科技学院(BESTI) 实     验    报     告 课程:   程序设计与数据结构           班级:      1623           姓名:  齐力锋      学号: 20162326 成绩:             指导教师:   娄嘉鹏/王志强             实验日期: 2017年4月14日 实验密级:非密级         预习程度:   优良      实验时间: 2 Hours 仪器组次:          必修/选修:   必修