类和对象(2)

class 类名{
属性、成员属性 成员变量
行为、成员方法
}

成员变量:

  1. 静态成员变量/类变量或类成员

  2. 非静态成员变量/普通成员变量

public static void main(String[] args) {
System.out.println(student.classRoom);
}

静态的成员变量不属于对象所以不用通过对象的引用来访问,直接可以通过类名就可以访问的。

静态的不依赖于对象。

成员方法:

  1. 静态成员方法/类方法
  2. 非静态成员方法
public void watchmovie() {// 看电影    
     System.out.println("看电影");
}​
public void palywechat() { // 聊微信    
     System.out.println("聊微信");
}​
public void setclock() { // 定闹钟    
     System.out.println("定闹钟");}

说明:

一般来说一个Java文件只写一个类,此处写到一起是为了能够直观观看!!!

一个Java文件只能有一个public类

通过类可以实例化对象 ——》 new。对象实际上就是一个实体。

此时name和age并没有赋值,但是此时不会报错,因为他们属于成员变量所以这里编译器会给他们默认值。如果是引用类型,那么默认为null;int float对应的0值。

boolean默认值false char 默认值‘\u0000’

  1. 当一个引用赋值为null的时候,代表:这个引用不指向任何对象!!!
  2. 引用能不能指向引用???
public static void main3(String[] args) {
    //引用指向引用的例子:这个说法是不对的
    Person person1 = new Person();
    Person person2 = new Person();
    person1 = person2;
}

由此可见不能!!!

person1 = person2;

 这个代表person1这个印用指向了person2这个引用指向的对象。

3.一个引用能不能同时指向多个对象???

public static void main4(String[] args) {
    Person person1 = new Person();
    person1 = new Person();
    person1 = new Person();
    person1 = new Person();
    person1 = new Person();
    person1 = new Person();
}//最后person1只是指向了一个对象(最后一个)

要了解封装得了解访问权限,要了解访问权限得了解包

什么是封装?

对类的细节进行隐藏 提供公开的接口来进行和数据进行交互!!!

public class Test2 {
    public void mainStaticFunc(){

    }
public static void main(String[] args) {
    /*Test2 test2 = new Test2();
    test2.mainStaticFunc();*/
    mainStaticFunc();
}

在静态方法内部,不能直接调用非静态的成员方法

普通成员方法内部是可以使用静态的成员方法的

public static void func(){
    System.out.println(this.name);
    System.out.println(name);
    System.out.println("staticFunc");
}

在静态方法内部,不能够直接使用非静态的数据成员,只要是非静态的数据成员都需要通过对象的引用才能调用

静态方法里面是不能使用this的

public static int getSize() {
    return size;
}

public static void setSize(int size) {
    Student.size = size;
}

此时建议:获取静态的成员变量或者是设置静态的成员变量,此时的方法最好是静态的,否则你要是非静态的。就还需要实例化对象。多废手续!!!

 对于静态成员变量的初始化:

  1. 直接赋值
    public static String classRoom = "软工";
  2. 默认初始化
  3. 可以通过构造方法提供get和set方法进行初始化  
    public static int getSize() {
        return size;
    }
    
    public static void setSize(int size) {
        Student.size = size;
    }
  4.  在构造对象的时候可以在构造方法中进行赋值(不建议这样写)
    public Student(String name, int age,int si) {
        this.name = name;
        this.age = age;
        size = si;
    }
  5.  通过代码块进行赋值

普通代码块:定义在方法内部的代码块

构造代码块/非静止代码块/实例代码块:类的里面,方法的外面

public String toString() {
    return "数据是:{" +
            "name='" + name + '\'' +
            ", age=" + age +
            '}';
}

对于你想输出一个对象的引用的值的时候,如果你没有自己写一个toString方法,那么就会调用Object这个类的方法。如果自己写了,就调用自己的!!!

通过学习明白需要慢慢的、逐步的才能理解,不是学完立马见效的!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值