一.类的定义
一个全面的类定义是比较复杂的, 定义如下:
二.类的对象
1.如何创建对象
类名 对象名=new 类名();
2.如何访问类的成员属性?
对象名.属性名
3.一个简单的程序实例
public class Demo1 { public static void main(String[] args) { //创建Cat的一个对象
Cat cat1=new Cat(); cat1.age=3; cat1.name="xiaohua"; //创建Cat的第二个对象
Cat cat2; //将cat1赋值给cat2
cat2=cat1; System.out.println(cat2.age+" "+cat2.name); } } class Cat { int age; String name; }
运行结果:
3 xiaohua
三.类的成员方法
1.类的成员方法的定义
2.一个简单的程序实例
public class Demo2 { public static void main(String[] args) { Calculator calculator=new Calculator(); calculator.calculate(100); System.out.println(calculator.add(100, 100)); } } class Calculator{ //成员方法
public void calculate(int n){ System.out.println(n*(n+1)/2); } public int add(int n1,int n2){ return n1+n2; } }
运行结果:
5050
200
四.类的构造方法
1.构造方法的特点
(1).构造方法名和类名相同;
(2).构造方法没有返回值;
(3).主要作用是完成对新对象的初始化;
(4).在创建对象时,系统自动调用该类的构造方法;
(5).一个类可以有多个构造方法;
(6).每个类都有一个默认的构造方法.
2.一个简单的程序实例
public class Demo3 { public static void main(String[] args) { Person p1=new Person(); System.out.println("姓名:"+p1.name+"年龄:"+p1.age); Person p2=new Person(10,"xiaoming"); System.out.println("姓名:"+p2.name+"年龄:"+p2.age); } } class Person { int age; String name; //空构造方法
public Person(){ } //有参构造方法
public Person(int a,String n){ age=a; name=n; } }
运行结果:
姓名:null年龄:0
姓名:xiaoming年龄:10
五.类变量与类方法
1.类变量
(1).类变量是与类相关的, 是公共属性;
(2).加上static称为类变量或者静态变量, 否则称为实例变量;
(3).实例变量是属于每个对象个体的属性;
(4).类变量可以通过类名.类变量名或者对象名.类变量名直接访问.
2.类方法
(1).类方法是与类相关的, 是公共的方法;
(2).类方法中不能访问非静态变量;
(3).可以通过类名.类方法名或者对象名.类方法名使用.
3.简单的程序实例
public class Demo4 { public static void main(String[] args) { Child child1=new Child(8, "xiaohuang"); child1.joinGame(); Child child2=new Child(10, "xiaoming"); child2.joinGame(); //访问类变量
System.out.println("共有"+child1.total+"个小孩参加游戏"); System.out.println("共有"+child2.total+"个小孩参加游戏"); System.out.println("共有"+Child.total+"个小孩参加游戏"); } } class Child { int age; String name; //类变量(静态变量)
static int total=0; public Child(int age,String name) { this.age=age; this.name=name; } //统计参加游戏的小孩人数
public void joinGame() { total++; } }
运行结果:
共有2个小孩参加游戏
共有2个小孩参加游戏
共有2个小孩参加游戏
public class Demo5 { static int i=1; static { i++; } public Demo5() { i++; } public static void main(String[] args) { System.out.println(i); Demo5 d1=new Demo5(); System.out.println(i); Demo5 d2=new Demo5(); System.out.println(i); } }
运行结果:
2
3
4
public class Demo6 { public static void main(String[] args) { Stu stu1=new Stu(10,"xiaoming",120); Stu stu2=new Stu(20,"xiaohuan",320); System.out.println(Stu.getTotalFee()); } } class Stu { int age; String name; static int totalFee=0; public Stu(int age,String name,int fee) { this.age=age; this.name=name; totalFee+=fee; } //静态变量用静态方法访问 //静态方法只能访问静态变量 //普通方法可以访问普通的成员变量,也可以访问静态变量
public static int getTotalFee() { return totalFee; } }
运行结果:
440