Java学习第二篇:类,对象,成员属性,成员方法,构造方法,类变量,类方法

时间:2023-02-25 21:02:07

一.类的定义

一个全面的类定义是比较复杂的,  定义如下:

Java学习第二篇:类,对象,成员属性,成员方法,构造方法,类变量,类方法

二.类的对象

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.类的成员方法的定义

Java学习第二篇:类,对象,成员属性,成员方法,构造方法,类变量,类方法

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