HelloWorld.java
import java.util.Arrays;
public class HelloWorld
{
//注释内容主方法
public static void main(String args[])
{
int[] array= {3,1,4,5,6,2,9,7,8};
Arrays.sort(array);
printa(array);
}
private static void printa(int [] a)
{
for(int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
}
}
bile.java
public class bike {
String color="黄色";
void getMes()
{
System.out.println("类的方法");
}
public static void main(String args[])
{
bike b=new bike();
System.out.println(b.color);
b.getMes();
}
}
public class bike {
String color;
//bike类的构造方法
public bike(String color)
{
this.color=color;
}
public void getcolor()
{
System.out.println(color);
}
public static void main(String args[])
{
bike b=new bike("黄色");
b.getcolor();
}
}
——目的:保护父类的某些特殊的数据。
1)重写子类方法:
class father //父类
{
String color="黄色";
public void getMes()
{
System.out.println("父类:"+color);
}
}
public class bike extends father //子类
{
String color="绿色";
public void getMes() //重写父类方法
{
System.out.println("子类:"+color);
}
public static void main(String args[])
{
bike t=new bike();
t.getMes();
}
}
运行结果:
子类:绿色
2)final 修饰方法时
class father //父类
{
String color="黄色";
public final void getMes()
{
System.out.println("父类:"+color);
}
}
public class bike extends father //子类
{
String color="绿色";
public void getMes() //重写父类方法
{
System.out.println("子类:"+color);
}
public static void main(String args[])
{
bike t=new bike();
t.getMes();
}
}
报错:
错误: 加载主类 bike 时出现 LinkageError
java.lang.VerifyError: class bike overrides final method father.getMes()V
final修饰方法:子类只能继承,不能重写。
所以,修改方法:删除子类中对方法的重写的代码。
class father //父类
{
String color="黄色";
public final void getMes()
{
System.out.println("父类:"+color);
}
}
public class bike extends father //子类
{
String color="绿色";
public static void main(String args[])
{
bike t=new bike();
t.getMes();
}
}
运行结果:
父类:黄色
static可修饰变量、方法、语句块、内部类。
public class bike
{
static String color="绿色";
//创建bike类的构造器
public bike(String color)
{
this.color+=color;
}
public static void main(String args[])
{
bike t1=new bike("黄色");
bike t2=new bike("红色");
System.out.println(t1.color);
System.out.println(t2.color);
System.out.println(color);
}
}
运行结果:
绿色黄色红色
绿色黄色红色
绿色黄色红色
public class bike
{
String color="绿色";
public static void main(String args[])
{
System.out.println(color);
}
}
运行报错:
Exception in thread “main” java.lang.Error: Unresolved compilation problem:
Cannot make a static reference to the non-static field color
at bike.main(bike.java:11)
改正方法:
将成员变量color声明为static类型.
public class bike
{
static String color="绿色";
public static void main(String args[])
{
System.out.println(color);
}
}
运行结果:
绿色
//在静态方法里使用this关键字报错
public class bike
{
//static修饰的静态成员变量
static String color="绿色";
//定义一个方法来访问静态变量。
public static void getMes()
{
System.out.println(this.color); //错误:应将this去掉
}
public static void main(String args[])
{
bike t=new bike();
t.getMes();
}
}
报错:
Exception in thread “main” java.lang.Error: Unresolved compilation problem:
Cannot use this in a static context
at bike.getMes(bike.java:11)
at bike.main(bike.java:16)
改正:将静态方法中的this去掉
public class bike
{
//static修饰的静态成员变量
static String color="绿色";
//定义一个方法来访问静态变量。
public static void getMes()
{
System.out.println(color);
}
public static void main(String args[])
{
bike t=new bike();
t.getMes();
}
}
静态成员变量访问方式:
1) 类名.静态变量名; = this.静态变量名;
2) 静态变量名; //直接访问
public class bike
{
//static修饰的静态成员变量
static String color="绿色";
//定义一个方法来访问静态变量。
public void getMes()
{
System.out.println(bike.color);
//System.out.println(color); //都可以
//System.out.println(this.color); //都可以
}
public static void main(String args[])
{
bike t=new bike();
t.getMes();
}
}
运行结果:
绿色
用static和final两个关键字来修饰成员变量。
静态常量:系统不会为其分配默认值,程序员必须进行初始化。
//声明两个静态常量
public static final int i=11;
public static final float i=11.0F;
public static final double PI=3.14;
常量和静态块随着类的创建而存在,当然也可以给常量进行赋值。
public class bike
{
static
{
PI=3.14;
}
public static final String color="绿色";
public static final double PI;
public static void main(String args[])
{
System.out.println(color);
System.out.println(PI);
}
}
运行结果:
绿色
3.14