您的位置 首页 java

java零基础自学教程(六)

一 类型转换

将一个类型的值赋值给另一个类型的变量称为 类型转换. 格式如下 :

int x=(int)3.14;

System.out.println(x); // 输出3

将要强制转换的类型放在()括号中,并放在要改变类型的值得前面.

double x=34.5455;

int y=(int)x;

System.out.println(x); // 输出34 转换的时候进行下舍入

●java支持将整数自动转换为 浮点数 ,因为没有精度损失.如果要将浮点数赋值给 整型变量 ,需要使用 强制类型转换 ,如:(int)3.14

二 向上转型和向下转型

向上转型(upcasting)

你可以将一个子类的实例转换为其父类,这是向上转换

Animal a=new Dog(); //java自动将Dog类型的变量(此为引用变量)向上转换为Animal类型

●向下转型(downcasting)

将父类的对象(实例)转换为其子类,称为向下转换.

Animal a=new Animal();

( (Dog)a ).barking();//将父类的实例a强制转换为Dog类的实例,并调用barking()方法

三 匿名类

实例化 类的时候,即时重写类的 构造函数 ,这个类就是匿名类.实例化的同时,重写了构造函数

class Computer{

public void start(){

System.out.println(“Starting”);}

public static void main(String[] args){

Computer c=new Computer(){

@Override public void start(){

System.out.println(“Wooooo”);}

};

c.start();

}

} // 输出”Wooooo”

在调用构造函数来创建Computer对象时,即时更改start()方法的实现

●@Override 注解用于使代码更容易理解,表示方法被重写.

●重写后的start()方法,这种修改只适用于当前对象,而不适用于类本身,类本身的start()方法并没有改变.所以当创建这个类的其他对象的时候,start()方法的实现就是在类中定义的那个

class Computer{

public void start(){

System.out.println(“Starting”);}

}

public static void main(String[] args){

Computer c1=new Computer(){

@Override public void start(){

System.out.println(“Wooooo”);}

} ; // {};代码块跟在new Computer后边,语句结束要用”;”

Computer c2=new Computer();

c2.start();

}// 输出”Starting”

四 内部类

java支持嵌套类,一个类可以是另一个类的成员.与一个类不同的是,内部类可以是私有的,一旦一个内部类被声明为私有的,它就不能从类之外的对象访问

class Robot{

int id;

Robot(int i){

id=i;

Brain b=new Brain();

b.think();}

private class Brain{

public void think(){

System.out.println(id+” is thinking”);}

}

} //类Robot有个内部类Brain,内部类可以访问外部类的所有成员方法和变量,但不能从任何外部类访问

文章来源:智云一二三科技

文章标题:java零基础自学教程(六)

文章地址:https://www.zhihuclub.com/180906.shtml

关于作者: 智云科技

热门文章

网站地图