第一、JAVA语言语法之 三、static修饰符 四、final修饰符 五、接口 六、内类
来源:互联网 发布:uiautomator2 python 编辑:程序博客网 时间:2024/05/21 09:15
三、static修饰符
3.1、静态变量
成员变量前加上static,叫类变量,被这个类创建的所有对象共有。在多个对象间共用数据时,可以使用这种方法
3.2、静态方法
方法前加上static,该方法可以通过类的名字直接访问
①静态方法只能访问类变量和方法参数,不能直接访问成员变量,否则编译出错
如果确实需要访问成员变量,可以先创建对象,再通过对象访问
②静态方法不能直接访问非静态的方法,否则编译出错
③静态方法不可被覆盖
1)如果父类有个方法是静态的,子类中有个方法与其名称、参数都相同,但不是静态的,这时编译出错
2)如果父类有个方法是静态的,子类中有个方法与其名称、参数都相同,但是静态的,这时编译能通过,但这种用法不是覆盖
3.3、静态初始化
代码
}
这段代码和成员变量、方法并列,在第一次创建对象时执行,以后都不再执行
四、final修饰符
4.1、final类
表明该类不可以有子类
4.2、final方法
表示该方法不可以被覆盖,final只影响覆盖,不影响重载
static、private方法和final方法一样,都不可以被覆盖,只是final编译时会报错,static、private不报错,但是也不会被覆盖
4.3、final变量
代表常量,只能赋值一次
五、接口
5.1、抽象类——abstract修饰符
abstract用在类和方法定义中,表示类中有方法还没有写完,只写了方法的名称和参数,没有写方法的代码
如:编写一个类,知道类中一定要有某个方法,但是该方法的细节还不能确定,只能在它的子类中才能确定,这个时候就使用abstract。**抽象类--abstract修饰符
*/
abstract class Vehicle{//定义一个交通工具类
abstract int getFuel();//定义getFuel()方法计算油耗,抽象的,在子类中去实现
}
class Car extends vehicle{//汽车
int getFuel(){
//具体的油耗计算方法
}
}
class Bus extends vehicle{ //工交车
int getFuel(){
//具体的油耗计算方法
}
}
class Company{//定义一个公司类
Vehicle fleet[];//定义一个车队,只要是交通工具都可以包含
void reportFuel(Company c){//统计车队每个月的耗油量
int fuel = 0;
for(int i = 0; i<c.length; i++){
fuel += fleet[i].getFuel();//则要求每种车都有个getFuel()方法来计算油耗
}
}
}
5.2、接口——interface
①当一个类中所有的方法都是抽象的,我们就把这个类定义为接口,所有的方法都只有方法名和参数 ③使用时通过类来实现,必须把接口中所有的方法都实现,如果不能完全实现,就说明该类还没有定义完,应该声明为抽象的类。 ④使用接口,可以把不同类之间的相似点提取出来 如:鸟和飞机都有会飞的特点,需要定义一系列与飞相关的方法(如飞行高度、速度等),则定义一个接口 内类又叫类的嵌套,把一个类定义在另一个的内部,与成员变量和方法并列,主要用于在内类中访问外类的成员变量。 在包含内类的方法中,局部变量(常量除外)不能被内类直接访问 ①只是位置在外类中,实际上是与外类并列,不能直接访问外类的成员变量 ②内类一般不可以定义静态的成员变量,但是静态内类可以
**接口的实现--通过类来实现,若不能完全实现,则该类须定义为抽象类
*/
class aa implements xx,yy{
public void tt(){
//...
}
public void ss(){
//...
}
public void mm(){
//...
}
}
**通过接口提取类的相似点
*/
interface Fly{
public void getflyHeight();//高度
public void getflySudu();//速度
}六、内类
6.1、内类就象外类的方法一样,在静态方法中不能直接使用,需要先创建外类对象,通过外类的new类创建内类对象,在其他类中使用内类也应如此。
class Aa{
private int size;
class Bb{
void tt(){
size = 100;//内类中可以直接使用外类的成员变量
}
}
void ss(){
Bb x = new Bb();//非静态方法中直接创建内类对象
}
public static void main(String ejing[]){
Aa s = new Aa();//在静态方法中先创建外类对象
Bb y = s.new Bb();//再通过外类的new来创建内类对象
}
}6.3、方法中定义内类
**方法中定义内类
*/
public class Aa{
private int size;
void test(){
int i;//包含内类的方法中,局部变量不能被内类访问
final int j = 102;//常量可以被内类访问
class Bb{
void tt(){
size = 100;
System.out.println(j);
}
}
Bb x = new Bb();
x.tt();
System.out.println(size);
}
public static void main(String ejing[]){
Aa s = new Aa();
s.test();
}
}6.4、内类可以定义为抽象的
6.5、静态内类
**接口的定义
*/
public interface xx{
public void tt();
public void ss();
}
②接口支持多重继承:一个子接口可以有多个父接口,突破类的单一继承限制
**创建内类对象
*/
**接口的多重继承
*/
interface xx{
public void tt();
public void ss();
}
interface yy{
public void mm();
}
interface zz extends xx,yy{
}
- 第一、JAVA语言语法之 三、static修饰符 四、final修饰符 五、接口 六、内类
- 第一、JAVA语言语法之 三、static修饰符 四、final修饰符 五、接口 六、内类
- JAVA编程之static、final修饰符
- JAVA编程之static、final修饰符
- Java——static修饰符、final修饰符、abstract修饰符、接口
- Java——static修饰符、final修饰符、abstract修饰符、接口
- java--static修饰符、final修饰符、abstract修饰符、接口
- static、final修饰符、内部类
- static、final修饰符、内部类
- static、final修饰符、内部类
- static、final修饰符、内部类和Java内存分配
- 接口final 、static修饰符的使用
- 修饰符static、final、abstract与接口
- java ----------static final abstract 等修饰符以及接口定义
- Java基础之面向对象(三)--继承、抽象类、接口、final修饰符、模版方法模式
- Java基础之面向对象(三)--继承、抽象类、接口、final修饰符、模版方法模式
- java中的三大修饰符static、final、abstract
- java中的三大修饰符static、final、abstract
- 使用struts+spring+hibernate 组装web应用(作者:littlebat)
- tomcat5.5的问题及其解决办法
- .net 2.0中的事务处理
- java Servlet编译运行
- weblogic部署servlet
- 第一、JAVA语言语法之 三、static修饰符 四、final修饰符 五、接口 六、内类
- selinux跟ZendOptimizer共存
- C#获取mp3 Tag信息
- 有关ActionMapping
- 使用架构(XSD)验证XML文件
- linux下文件结构收藏
- 百万数据查询优化技巧三十则
- IE下的javascript调试工具
- domino相关文档就写在domino里