索迪教育
Java编程技术基础第四章 类与对象 (二 )
索迪教育上章回顾
掌握类的创建
掌握方法重载
掌握构造函数和初始化对象
继承
掌握方法覆盖
掌握访问修饰符
掌握包的概念
Object类
String类索迪教育我们的目标
掌握类的静态成员
掌握 Math类
掌握 this关键字
掌握 final关键字
掌握抽象类的概念与实现
掌握接口的概念与实现
掌握封装类
掌握内部类的实现索迪教育
Static关键字
static
用于变量与方法
无需创建类的对象可直接访问的变量或方法
对于变量,整个类的所在对象只创建一个实例
引用静态变量的方法:
通过引用类的任一实例通过类的名称
与静态方法相关的几个要点:
类的静态方法只能访问其他的静态成员索迪教育
Math类
java.lang.Math
Math的一些静态方法
abs()
ceil()
floor()
max()
min()
random()
round()
索迪教育
this关键字
this 代表当前类本身的实例
静态方法不能使用 this
索迪教育
final关键字
final
应用于变量、方法、类
用于声明唯一性被应用于 作用变量 不可变,成常量方法 不可被子类重写类 不可产生子类索迪教育关于抽象类
有时候,基类并不与具体的事物相联系,而是只表达一种抽象的概念,用以为它的派生类提供一个公共的界面
为此,Java 中引入了抽象类的概念
C++ 程序员在这里最容易犯错误,C++ 中没有对抽象类进行直接声明的方法,而认为只要在类中定义了纯虚函数,这个类就是一个抽象类
纯虚函数的概念比较晦涩,直观上不容易为人们接受和掌握,因此 Java 抛弃了这一概念索迪教育
Java 中对抽象类的规定
抽象类使用 abstract 修饰符,对抽象类的使用有以下几点规定
抽象类只能作为其它类的基类,它不能直接被实例化,而且对抽象类不能使用 new 操作符
抽象类如果含有抽象的变量或值,则它们要么是 null
类型,要么包含了对非抽象类的实例的引用
抽象类允许包含抽象成员,虽然这不是必须的
抽象类不能同时又是唯一的
如果一个非抽象类从抽象类中派生,则其必须通过重写来实现所有继承而来的抽象成员索迪教育抽象方法
由于抽象类本身表达的是抽象的概念,因此类中的许多方法并不一定要有具体的实现,而只是留出一个接口来作为派生类重写的界面
一个方法声明中如果加上 abstract 修饰符,我们称该方法为抽象方法
如果一个方法被声明也是抽象的,那么它不提供具体的方法实现代码
抽象方法不包含具体的实现内容,方法声明的执行体中只有一个分号
只能在抽象类中声明抽象方法
对抽象方法不能再使用 static 修饰符,而且方法不能有任何可执行代码
抽象方法在派生类中不能使用 super 关键字来进行访问索迪教育引入接口
为什么还要接口?
类的继承还不够吗?
没有接口会怎样?
索迪教育创建一个接口
public interface myinterface
{
public static final int a=100;
public void add(int x,int y) ;
}
索迪教育在程序中实现接口
class demo implements myinterface
{
public void add(int x.,int y)
{
System.out.println(,” + ( x + y ));
}
public static void main(String args[ ])
{
deno d = new demo ( ) ;
d.add (10,20 ) ;
}
}
索迪教育封装类基本数据类型的封装类
byte
short
int
long
float
double
char
boolean
Byte
Short
Integer
Long
Float
Double
Character
Boolean
索迪教育匿名类
匿名类就是没有指定名称的类,
索迪教育内部类与外部类
如果A类的定义放在B类的内部,则称A类为内部类,
B类为外部类。
内部类可被视为单独的类,这是由于如果没有内部类对象,我们无法从外部类访问内部类的变量和方法。
内部类的实例化过程与一般类的实例化过程不同。若要实例化内部类,必须使用外部类名称,后跟点 (.),
然后跟内部类名称索迪教育从命令行接受参数
Class Test
{
public static void main(String args[])
{
……
}
}
args[0]记录了第一个参数
args[1]记录了第二个参数依次类推 ……
例 1,javac Test.java 100 abc
例 2,javac Test.java 100,a b”
索迪教育本章小结
掌握类的静态成员
掌握 Math类
掌握 this关键字
掌握 final关键字
掌握抽象类的概念与实现
掌握接口的概念与实现
掌握封装类
掌握内部类的实现
Java编程技术基础第四章 类与对象 (二 )
索迪教育上章回顾
掌握类的创建
掌握方法重载
掌握构造函数和初始化对象
继承
掌握方法覆盖
掌握访问修饰符
掌握包的概念
Object类
String类索迪教育我们的目标
掌握类的静态成员
掌握 Math类
掌握 this关键字
掌握 final关键字
掌握抽象类的概念与实现
掌握接口的概念与实现
掌握封装类
掌握内部类的实现索迪教育
Static关键字
static
用于变量与方法
无需创建类的对象可直接访问的变量或方法
对于变量,整个类的所在对象只创建一个实例
引用静态变量的方法:
通过引用类的任一实例通过类的名称
与静态方法相关的几个要点:
类的静态方法只能访问其他的静态成员索迪教育
Math类
java.lang.Math
Math的一些静态方法
abs()
ceil()
floor()
max()
min()
random()
round()
索迪教育
this关键字
this 代表当前类本身的实例
静态方法不能使用 this
索迪教育
final关键字
final
应用于变量、方法、类
用于声明唯一性被应用于 作用变量 不可变,成常量方法 不可被子类重写类 不可产生子类索迪教育关于抽象类
有时候,基类并不与具体的事物相联系,而是只表达一种抽象的概念,用以为它的派生类提供一个公共的界面
为此,Java 中引入了抽象类的概念
C++ 程序员在这里最容易犯错误,C++ 中没有对抽象类进行直接声明的方法,而认为只要在类中定义了纯虚函数,这个类就是一个抽象类
纯虚函数的概念比较晦涩,直观上不容易为人们接受和掌握,因此 Java 抛弃了这一概念索迪教育
Java 中对抽象类的规定
抽象类使用 abstract 修饰符,对抽象类的使用有以下几点规定
抽象类只能作为其它类的基类,它不能直接被实例化,而且对抽象类不能使用 new 操作符
抽象类如果含有抽象的变量或值,则它们要么是 null
类型,要么包含了对非抽象类的实例的引用
抽象类允许包含抽象成员,虽然这不是必须的
抽象类不能同时又是唯一的
如果一个非抽象类从抽象类中派生,则其必须通过重写来实现所有继承而来的抽象成员索迪教育抽象方法
由于抽象类本身表达的是抽象的概念,因此类中的许多方法并不一定要有具体的实现,而只是留出一个接口来作为派生类重写的界面
一个方法声明中如果加上 abstract 修饰符,我们称该方法为抽象方法
如果一个方法被声明也是抽象的,那么它不提供具体的方法实现代码
抽象方法不包含具体的实现内容,方法声明的执行体中只有一个分号
只能在抽象类中声明抽象方法
对抽象方法不能再使用 static 修饰符,而且方法不能有任何可执行代码
抽象方法在派生类中不能使用 super 关键字来进行访问索迪教育引入接口
为什么还要接口?
类的继承还不够吗?
没有接口会怎样?
索迪教育创建一个接口
public interface myinterface
{
public static final int a=100;
public void add(int x,int y) ;
}
索迪教育在程序中实现接口
class demo implements myinterface
{
public void add(int x.,int y)
{
System.out.println(,” + ( x + y ));
}
public static void main(String args[ ])
{
deno d = new demo ( ) ;
d.add (10,20 ) ;
}
}
索迪教育封装类基本数据类型的封装类
byte
short
int
long
float
double
char
boolean
Byte
Short
Integer
Long
Float
Double
Character
Boolean
索迪教育匿名类
匿名类就是没有指定名称的类,
索迪教育内部类与外部类
如果A类的定义放在B类的内部,则称A类为内部类,
B类为外部类。
内部类可被视为单独的类,这是由于如果没有内部类对象,我们无法从外部类访问内部类的变量和方法。
内部类的实例化过程与一般类的实例化过程不同。若要实例化内部类,必须使用外部类名称,后跟点 (.),
然后跟内部类名称索迪教育从命令行接受参数
Class Test
{
public static void main(String args[])
{
……
}
}
args[0]记录了第一个参数
args[1]记录了第二个参数依次类推 ……
例 1,javac Test.java 100 abc
例 2,javac Test.java 100,a b”
索迪教育本章小结
掌握类的静态成员
掌握 Math类
掌握 this关键字
掌握 final关键字
掌握抽象类的概念与实现
掌握接口的概念与实现
掌握封装类
掌握内部类的实现