您的位置:首页 > 编程语言 > Java开发

java学习笔记3--java语言基础

2014-11-13 18:41 483 查看
每个应用程序必须有一个main方法,含有main方法的类是主类,建立java程序时,文件名必须和类名相同。

成员变量:类的属性称为类的全局变量(成员变量)

局部变量:方法中的属性称为局部变量

八进制以0开头,所以不能以0作为十进制数的开头。

默认情况下小数都被看作double类型,若使用float类型,需要在小数后面添加‘f'或者’F',加d或者‘D’可以转换为double型,所以声明float变量时变量后面加‘f’或者‘F'

对应long型变量,若赋给的值大于int型的最大值或者小于int型最小值,就要在后面加’L‘或者’l',表面该数值是长整型

char型,这里占据两个字节,用来保存字符和unicode编码

boolean类型的变量表示逻辑类型,只有true和false两个值,不能和整数类型转换。

程序一直不会改变的量成为常量,声明类型final 数据类型 常量名称[=值]

变量有效范围:

在类体中所定义的变量是成员变量,成员变量在整个类都有效。在成员变量的类型前加上关键字static被成为静态变量,静态变量的有效范围可以跨类。

局部变量:在类的方法体定义,位于{ }之间代码声明变量,类的方法声明变量,方法的参数也是局部变量。只在当前定义的方法内有效。局部变量和成员变量重名,成员变量会被屏蔽(取小范围)

foreach语句,在遍历数组方面很有帮助

格式

for(元素变量x:遍历对象obj)
{
引用了x的语句;
}


String 类用来声明字符串,声明的字符串必须经过初始化才能使用,否则编译器报错。

char a[]={'g','o','o','d'};
String s=new String(a);

String s=new String("good");
两条语句等效。

如果需要重复的对字符串修改频繁,需要使用StringBuilder类,然后用类创建的对象的append方法增加字符串。

:是同一类事物的抽象

继承,类A拥有类B的全部特点,还有自己特有的特点,A就可以继承B类的方法和属性。

封装:类内部的数据被隐藏,只留下了对用户提供对象的属性和行为的接口。

多态:将父类的方法应用与子类的特征就是多态,比如每个图像都有绘制自己的能力,这个能力可以看作是该类具有的行为,将该类的对象统一看成是父类的实例对象,这样绘制图形的时候,简单的调用父类也就是图形类绘图方法就可以绘制任何图像,这就是多态最基本的思想

抽象类:以图形类来说,图形类作为所有类的父类,具有绘图能力,这个方法称为“绘制图形”,但是如果真的执行“绘制图形”没有人知道该画什么图,如果要在图形类中抽象出一个图形对象,没有人能说清这个图形是什么图形。这种类是抽象类,抽象类不能实例化对象,在多态机制中,父类定义常为抽象类,抽象类给出一个方法的标准,但是不给出具体流程。

接口:多态机制里面接口比抽象类更方便,接口是抽象方法的集合,比如将“绘制图形”作为一个接口的抽象方法,然后使图像类实现这个接口,同时实现“绘制图形”这个抽象方法,当三角形需要绘制的时候,就可以继承图形类,重写其中的绘制方法,实现绘制三角形。接口interfere关键字,可以减少多态带来的代码冗余问题。在接口中定义的任何字段都是static和final的

权限修饰符:控制类和类的成员变量,以及类成员的方法



当声明类的时候如果没有权限修饰符默认是protected,类的权限设定会约束类成员的权限设定。

成员方法:成员方法中可以调用其他成员方法或者类成员变量.

this关键字:可以用来指明代表对本类对象的引用,被隐氏的用于引用对象的成员变量和方法。

类的构造方法: 构造方法没有返回值,构造方法的名字要和本类名相同。普通的没有返回值的方法使用 public void methodEx()这种形式定义,但构造方法并不需要使用void

如果类里面没有构造方法,编译器会自动创建一个不带参数的构造方法,当类中有构造方法但都不是无参的,编译器不会产生构造方法,但是用无参构造方法实例一个对象的时

侯会报错。

在实例化子类对象时,编译器会自动在子类构造方法中自动调用父类里面的无参构造方法。

静态成员:被声明为static的变量,常量,方法都是静态成员,静态成员属于类所有,区别与个别对象。可以在本类或者其他类使用类名+‘.'运算符,同样受权限描述符限制,java不能将方法体内部的局部变量声明为static类型,如果在执行类时,希望先执行类的初始化操作,可以使用一个static定义一个静态区。

静态方法:不能使用this关键字,不能直接调用非静态方法///////////////////***********************////////////////////////

对象的访问:对象+'.类成员'

对象的引用:格式 ;类名 对象引用名称,引用只是存放一个对象的内存地址,并非存放一个对象,严格的说引用和对象是不一样的,但是可以将这种区别忽略,

比如BOOK book ;book是BOOK类的一个对象,实际上book包含了Book对象的一个引用。

对象的比较: “==”运算符表示比较两个对象引用的地址是否相同,equals是String类的方法,比较对象所指内容是否相同;

String c1=new String("abc");
String c2=new String("abc");//c2和c1内容相同
String c3=c1;//c3和c1地址相同


对象的销毁: java垃圾回收机制只能自动回收new操作产生的对象,其他的可以通过finalize方法收回,finalize方法不一定会发生,如java虚拟机内存损耗快没有的时候,可以用System .gc强制收回。

类的转型: 类型的强制转换,只能向上转换,不能向下。比如可以说所有的平行四边形都是四边形,但是不能说所有的四边形都是平行四边形,如果要向下转型使用显示类型转换,可以使用instanceof操作符判断对象的类型。

包:java的每个接口或者类都来自不同的类包,类包的出现解决了类的管理问题,解决了类同名问题。类包的导入用关键字import

final类:类名的修饰符为final的类,不能被类继承。

内部类: 成员内部类,如果一个类中使用成员内部类,可以在内部类里面直接存取其所在的私有成员变量,尽管这些类成员被修饰为private。内部类的初始化和外部类相同。

内部类的成员只有在内部类的范围内是可知的,不能被外部类使用,但是可以使用内部类对象引用实现对内部类的成员的访问,内部类的对象实例化操作必须在外部类或者外部类的非静态方法实现。

如果在外部类和非静态方法之外实例化内部类对象,需要使用外部类。内部类的形式指定该对象的类型。内部类对象依赖外部类对象,除非已经存在一个外部类对象,否则类中不会出现内部类对象。

如果将一个权限修饰符为private的内部类向上转型为父类对象,或者直接向上转型为一个接口,在程序中就可以完全隐藏内部类的具体实现过程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: