- 创建一个Test类,包含有一个public权限的int型成员变量与一个char类型的成员变量,观察在main方法中的初始值。
class Test{
public int a;
public char c;
}
public class Ming{
public static void main(String[] args) {
Test test=new Test();
System.out.println(test.a);
System.out.println(test.c);
}
}
为什么有“Test test=new Test()”,或者说起的作用。
java中所有的类都属于引用类型,而基本数据类型又称为值类型,值类型的变量中存储实际的值(数据),引用类型的变量中存储引用,这个引用用于指向实际数据(对象)。所以在创建java类的对象时,会使用new操作符。其中test是Test的一个引用变量。
- 编写一个程序,展示无论你创建了某个特定类的多少个对象,这个类的某个特定的static成员变量只有一个属性。
class Test1{
public int c;
public char b;
public static int x=8;
public Test1(int i,char a){
this.c=i;
this.b=a;
}
}
public class Ming{
public static void main(String[] args) {
Test1 test1 = new Test1(1,'a');
Test1 test2 = new Test1(2,'b');
System.out.println("test1-"+test1.c+test1.b+test1.x);
System.out.println("test2-"+test2.c+test2.b+test2.x);
}
}
描述共享属性,只需在属性前添加static关键字即可
static属性又称为类属性,保存在全局数据区的内存之中,所有对象都可以进行该数据区的访问
关于static方法有以下两点说明:
所有的static方法不允许调用非static定义的属性或方法
所有的非static方法允许访问static方法或属性
使用static定义方法只有一个目的:某些方法不希望受到对象的控制,即可以在没有实例化对象的时候执行(广泛
存在于工具类中)
- 一个斐波那契数列是由数字1、1、2、3、5、8、13、21、34等等组成的,其中每一个数字(从第三个数字起)都是前两个数字的和。创建一个方法,接受一个整数参数,并显示从第一个元素开始总共由该参数指定的个数所构成的所有斐波那契数字。例如,如果运行 java Fibonacci 5(Fibonacci为类名),那么输出应该是1、1、2、3、5。
public class Ming{
public static void main(String[] args)
{
for(int i=1;i<=5;i++)
{
System.out.println(feibo(i));
}
}
public static int feibo(int num)
{
if(num==1||num==2)
{
return 1;
}
else{
return feibo(num-1)+feibo(num-2);
}
}
}
- 创建一个带默认构造方法(即无参构造)的类,在构造方法中打印一条消息"Hello Constructor";再为这个类添加一个重载构造方法,令其接收一个字符串参数,并在这个有参构造方法中把"Hello Constructor"和接收的参数一起打印出来。
class Ming1{
public Ming1(){
System.out.println("Hello Constructor");
}
public Ming1(String sheng){
this();
System.out.println(sheng);
}
}
public class Ming{
public static void main(String[] args) {
new Ming1(args[0]);
}
}