[修饰符] class 类名{ 零到多个构造器定义... 零到多个Field(成员变量)... 零到多个方法... }修饰符:public,final,abstract或者省略修饰符;
[修饰符] Field类型 Field名 [= 默认值];修饰符可以省略,也可以是public,protected,private,static,final(同色表示只能出现一个)
[修饰符] 方法返回值类型 方法名(形参列表){ //方法体 }修饰符可以省略,可以是public,protected,private,static,final,abstract
public class test{ public static void swap(int a,int b){ int tmp = a; a = b; b = tmp; System.out.println("swap方法里,a的值是:"+a+",b的值是:"+b); } public static void main(String[] args){ int a = 6; int b = 9; swap(a,b); System.out.println("交换结束后,a的值是:" + a + ",b的值是:" + b); } }
swap方法里,a的值是:9,b的值是:6 交换结束后,a的值是:6,b的值是:9
class D{ public int a; public int b; } public class test{ public static void swap(D x){ int tmp = x.a; x.a = x.b; x.b = tmp; System.out.println("swap中,a的值是:"+x.a+";b的值是:"+x.b); } public static void main(String[] args){ D d = new D(); d.a = 6; d.b = 9; swap(d); System.out.println("交换结束后,a的值是:"+d.a+";b的值是:"+d.b); } }
swap中,a的值是:9;b的值是:6 swap中,a的值是:9;b的值是:6引用类型中,由于是引用变量,传递的是地址,swap和main中操作的是指向同一地址的对象;
class Person { public String name; public static int num; } public class test { public static void main(String[] args) { System.out.println("Person的成员变量num:"+Person.num); Person p = new Person(); System.out.println("实例成员变量name:"+p.name+";num:"+p.num); p.name = "Dark"; p.num = 2; System.out.println("p的成员变量name:"+p.name+";num:"+p.num); System.out.println("Person的成员变量num:"+Person.num); Person m = new Person(); System.out.println("m的成员变量name:"+m.name+";num:"+m.num); } }
Person的成员变量num:0 实例成员变量name:null;num:0 p的成员变量name:Dark;num:2 Person的成员变量num:2 m的成员变量name:null;num:2
public class test { private String name = "Dark"; private static double price = 78.0; public static void main(String[] args) { int price = 65; System.out.println(price); System.out.println(test.price); new test().info(); } public void info(){ String name = "White"; System.out.println(name); System.out.println(this.name); } }
65 78.0 White Dark
class Person{ private String name; private int age; public void setName(String name){ if(name.length() > 6 || name.length() < 2) { System.out.println("您设置的人名不符合要求"); return; } else this.name = name; } public String getName(){ return this.name; } public void setAge(int age){ if(age > 100 || age < 0) { System.out.println("您设置的年龄不合法"); return; } else this.age = age; } public int getAge() { return this.age; } } public class test{ public static void main(String[] args) { Person p = new Person(); p.setAge(1000); System.out.println(p.getAge()); p.setAge(30); System.out.println(p.getAge()); p.setName("Dark"); System.out.println(p.getName()); } }
修饰符 class SubClass extends SuperClass{ //类定义部分 }
class BaseClass { public int a = 5; } public class SubClass extends BaseClass { public int a = 7; public void toOwner() { System.out.println(a); } public void toBase() { System.out.println(super.a); } public static void main(String[] args) { SubClass m = new SubClass(); m.toOwner(); m.toBase(); } }
7 5
class Creature{ public Creature(){ System.out.println("Creature无参数的构造器"); } } class Animal extends Creature{ public Animal(String name){ System.out.println("Animal带一个参数的构造器,该动物的name为:"+name); } public Animal(String name,int age){ this(name);//使用this调用同一个重载的构造器 System.out.println("Animal带两个参数的构造器,其age为:"+age); } } public class Wolf extends Animal{ public Wolf(){ super("灰太狼",3); System.out.println("Wolf无参数的构造器"); } public static void main(String[] args){ new Wolf(); } }result:
Creature无参数的构造器 Animal带一个参数的构造器,该动物的name为:灰太狼 Animal带两个参数的构造器,其age为:3 Wolf无参数的构造器
BaseClass test = new SubClass();当把一个子类对象直接赋给父类的引用变量时,当运行时调用该引用变量的方法时,其方法行为总时表现出子类方法的行为特征,而不是父类方法的行为特征;
public static void main(String[] args) { boolean b = true; Boolean bObj = new Boolean(b); int i = 5; Integer IntObj = new Integer(i); Float f = new Float("4.56"); //把字符串转换成Float对象 Boolean bbObj = new Boolean("false"); }
[修饰符] interface 接口名 extends 父接口1,父接口2... { 零到多个常量定义... 零到多个抽象方法定义... }
[修饰符] class 类名 implements 接口1,接口2... { 类体部分... }
class Person{ public int age; public double height; public void info(){ System.out.println("My age is:" + age +",My heght is:" + height); } } public class test{ public static void main(String[] args){ Person[] students = new Person[2]; Person zhang = new Person(); zhang.age = 15; zhang.height = 158; Person lee = new Person(); lee.age = 16; lee.height = 161; students[0] = zhang; students[1] = lee; lee.info(); students[1].info(); } }