java学习笔记(一)java面向对象特性摘要

来源:互联网 发布:c语言api怎么用 编辑:程序博客网 时间:2024/05/19 02:02

Java面向对象特性总结。

1、所有代码都在某个类中,每个Java源文件都只有一个public类,同时里面封装public方法main方法,该方法为整个程序入口,所有其他类、对象的调用都在main方法中进行。

 

2、标准的类应包含构造器(constructor),并且在对该类进行实例化时,应用new加构造器的方式进行。例如:

 

class m_class{

public m_class(){};

}

 

public class Demo1{

public static void main(){

m_class instance = new m_class();

}

}

此时main方法中的instance变量应是一个m_class类的实例的引用,类似C++中的对象指针。

3、标准的设计规范应该使类以更改器(set())与访问器((get()))的方式更改或访问其内部私有的数据域。

 

4final实例域,被定义为final的域(成员变量)必须并只能在使用构造器对一个类进行实例化时被赋值,之后不再改变。

 

5static定义的域为静态域或静态方法。其中静态域由类和所有属于该类的实例共有并只有一个,但是只能由类名对该域进行修改或复制。静态方法是由类所有的方法,不能由对象调用,从而不能访问对象中的实例域,只能由类名直接调用,并且只能访问类中的静态域。

 

6、方法参数。java中方法的参数可为值得直接传递或者对象的引用,传入的参数仅为实际参数的拷贝,所以方法不能改变所传递的实际参数。应在方法中对所传入的对象引用所指向的实际对象操作才行。例如:

public void tripleValue(float x){

x = x*3;

}

该方法不能使传入的任何float乘以3,因为方法中仅对传入浮点数的拷贝进行乘以3操作,并不改变原实际参数。而:

private class Employee{

private float salary;

 

public void riseSalary(float rate){

salary = salary*(1+rate);

}

 

public void tripleSalary(Employee x){

x.riseSalary(2);

}

}

这样,方法tripleSalary可以实现将xsalary变成三倍。

 

7、构造器可以重载,以参数表的不同来区分。

 

8、域初始化。对象中域(成员变量)的初始化基本有三种方式。

(1)、直接显式初始化,在类中的域定义的时候直接赋予其一个初值,如:

class Employee{

private float salary = 0;

}

(2)、使用构造函数,和第二点所述相同。

(3)、使用初始化块,初始化块是在域定义后对其进行赋初值的代码块,用大括号括起来。如:

class Employee{

private String name;

private float salary;

 

\\初始化块

{

name = “Harry”;

salary = 0;

}

}

另外,对静态域的初始化可以使用静态初始化块,只需在普通初始化块前加上static即可。

 

9、包。包(package)是类的集合,用来将类组织起来分块管理使用。同一个包中所有类可以互相调用(无论public或者private仅类),而某个类中仅仅public方法和域才能被包中其他类调用。包与包之间,只有public类才能被其他包的其他类调用。在程序中,有两种方法使用已经存在的包:

(1)、在类前加上完整包名,如:

java.util.Date today = new java.util.Date();

(2)、在程序开头使用import导入该包中的某个类,如:

Import java.util.Date;

之后便不用在该类前加上包名。另外可以导入整个包:

Import java.util.*;

便可以直接使用该包中所有类。


第一次写博客,新手,大概率犯错。继续加油!!!

 

0 0
原创粉丝点击