标签:对象 time home 分层 float 匿名内部类 == names 方法重写
java -version
javac -version
.java
结尾javac
对源代码文件进行编译
操作。产生.class
文件,该文件是Java的字节码文件,字节码文件与Windows或者是Linux无关java
对.class
文件进行解释运行
,注意:使用java
解释时,字节码文件不需要带.class
后缀名Java Package
,创建Java程序包的目的在于便于管理Java代码,类似于命名空间
Java标识符由字母,数字,下划线,美元符号组成。其中,标识符首字符不能是数字。
一些约定俗称的规定:
int
,实际上是一种基本类型(premitive type)
final
声明,不能修改的量//
注释一行/*...*/
注释多行/**...**/
注释若干行并写入javadoc文档==
,如果作用于基本数据类型的变量,则直接比较存储的值是否相等;如果比较引用类型的变量,则比较的是对象的"地址"是否相等。object.equals()
,equals()不能作用于基本数据类型。如果没有对equals()方法进行重载,则比较的是对象的"地址";但诸如String
,Date
等类对equals()进行了重载,比较的是“地址”(在Java中称为引用)所指向的对象。附录:8种基本数据类型
type []arrayName=new type[arrayNumber];
int []ages={1,2,3}
type [][]arrayName=new type[row][column]
String [][]name={{"Simon","Nancy"},{"Tim","Che"}}
访问修饰符 返回值类型 方法名(参数列表){方法体}
e.g.:public void main(String args[]){...}
所谓之方法重载,是方法名相同,但参数列表不同(参数类型/个数/顺序至少有一项不同)的方法。如下列重载的方法:
void f(int i) {
System.out.println("i=" + i);
}
void f(float f) {
System.out.println("f=" + f);
}
void f(String s) {
System.out.println("s=" + s);
}
void f(String s1, String s2){
System.out.println("s1+s2="+(s1+s2));
}
void f(String s, int i){
System.out.println("s="+s+",i="+i);
}
面向对象的三大特性:封装,继承,多态
private
关键字在公共方法中提供属性值的合法性判断语句
e.g.:
package com.mengngn
public class People{
private double height;
public double getHeight(){
return height;
}
public void setHeight(double newHeight){
if(newHeight<0) return;
height=newHeight;
}
}
由于类名是可重复的,所以Java提供了类似命名空间
的机制,包package
//定义包。注意,包名定义应放在源程序的第一行,包名可用“.”隔开
package PackageName
//正如目录可以用"/"来区分层次,包可以使用"."分层
package com.coder.chen
包名的命名规范是全小写字母,导入包的方法是:import com.coder.chen.*
类内可定义另外一个类,这就是内部类
。内部类又分为:成员内部类
,静态内部类
,局部内部类
和匿名内部类
匿名内部类举例
package com.coder.chen;
public class Outer {
public Inner getInner(final String name, String city) {
//匿名内部类
return new Inner() {
private String nameStr = name;
public String getName() {
return nameStr;
}
};
}
}
一个子类继承父类的语法:class SubClass extends SuperClass{...}
可以对父类的方法重写,重写的方法必须与父类的方法签名一致,即返回值类型,参数类型,参数个数和方法名都必须一致。
继承的初始化顺序是先初始化父类再初始化子类。
final
修饰类则该类为最终类
,不允许被继承final
修饰方法,则该方法不允许重写
final
修饰属性,则该属性不需要隐式初始化
,属性必须有值或者在构造函数中赋值。final
修饰变量,则变量是常量super
在子类中使用代表父类对象
。super.method()
super.property
子类构造方法需要调用父类构造方法时,在子类构造方法最前面
的位置:super()
多态是指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。多态也称作动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
SuperClass c=new SuperClass();//c是父类引用,指向本类对象
SuperClass c=new SubClass();//c是父类引用,指向的是子类对象
不能使用一个子类的引用指向父类对象
多态的实现方式:方法重写,抽象类和抽象方法和接口
抽象类和抽象方法
abstract void method();
1.用 abstract 修饰符定义抽象类
2.用 abstract 修饰符定义抽象方法,只用声明,不需要实现
3.包含抽象方法的类就是抽象类
4.抽象类中可以包含普通的方法,也可以没有抽象方法
5.抽象类的对象不能直接创建,我们通常是定义引用变量指向子类对象。
接口
修饰符 interface 接口名 [extend 其它类]{//声明变量,抽象方法}
e.g.:
interface Animal {
//编译错误,x需要初始化,因为是 static final 类型
//int x;
int y = 5;
public void eat();
public void travel();
}
多继承实现方式:修饰符 class ClassName implements Interface1,Interface2{...}
1.接口不可实例化对象
2.接口中所有方法均是抽象方法
3.接口成员均是static final类型
4.接口支持多继承
标签:对象 time home 分层 float 匿名内部类 == names 方法重写
原文地址:https://www.cnblogs.com/mengnan/p/9307592.html