JAVA学习总结

1、什么是对象?什么是类?类和对象有什么关系?

//对象是数据的封装,是类的具体体现;类是具有相同属性、行为的对象的集合。
2、属性如何创建?属性有什么特点?属性如何访问?   

//属性通过类创建,不加static;访问:变量名.属性
3、静态变量如何创建?静态变量有什么特点?静态变如何访问?   

public static 类型 变量名;静态变量所有成员共享,可以使用类名.属性  或者 变量名.属性;静态方法在成员属性之前加载,所以不能调用
4、对象在内存中如何存放?

对象是存放的具体地址,基本数据直接存放数据。
5、什么是null?对象如何销毁?

null是指数值为空,对象没有被变量指向,而销毁。
6、什么包?包有什么作用?

包是相同类的集合,可以做到信息的隐藏


7、根据代码画出内存图,并说出结果

public class Student {
      public int code;
}

public class Test {
    public static void main(String[] args) {
        int x = 4;
        Student s1 = new Student();
        Student s2 = new Student();

        s1.code = 8;
        s2.code = 3;
        test(s1,s2,x);
        System.out.println(s1.code+"   "+s2.code+"  "+x);
    }
//传参的时候,先把三个形参画出来,并注意,传参的方式。
    public static void test(Student s2,Student s1,int x){
        s1.code = 2;
        s2.code = 5;

        s2 = s1;
        s1.code = s2.code;//这是一句废话,自己赋值给自己

        s1 = new Student();
        s1.code = 10;
        s2.code = 7;

        x = 15;
    }
}

方法的重载
重载是发生在一个类中的。两个方法的方法名相同,参数列表不同(参数类型、个数、顺序),和返回类型无关,根据方法的参数来决定调用哪个重载方法。
//   public void look(int a){},例如一个有返回,一个没返回,会报错,不形成重载
//   public int look(int b){}
//   public int look(String a){};=public int look_String(){},这是重载方法在内存中的编译形式


构造方法
构造方法的方法名和类名相同,没有返回类型。利用构造方法,我们可以产生该类的对象。
作用:
1.为对象分配空间;
2.初始化成员变量;如果声明一个对象之后直接打印的话,会打印出空和0
3.返回该对象的引用,构造方法会产生一个返回,来返回对象的引用,再赋值给新的变量接收,比如
 
在一个类中,虚拟机会默认定义一个构造方法:public Man(){}
在其他类中,引用该类Man m = new Man();
1.如果
4.如果一个类没有定义构造方法,虚拟机会 默认分配一个  无参   构造方法给该类。如果一个类定义了构造方法,默认的无参构造方法就会消失。构造方法在产生对象时调用。 通常使用构造方法做一些初始化动作。

静态方法和this不能同时使用


构造方法便捷初始化对象属性,构造方法重载,this的查找优先级。
public class Stu_reload {
//这是一个构造方法重载文件
     public String name ="x";
     public int age;
     public String tel;

     /***
      * 这是一个构造方法初始化效果,归根到底是合理利用(this.属性=形参)的方式,进行传参
      * @param name
      * @param age
      * @param tel
      */
     public Stu_reload(String name,int age, String tel){// 这是一个构造方法初始化
           this.name = name;
           this.age = age;
           this.tel = tel;
     }
     /***
      * 当构造方法改变之后,就必须要传参,否则报错,这时就可以用重载方法,重载无参的默认构造方法。
      */
     public Stu_reload(){}

     /***
      * 便捷输出对象属性,如果没有同名形参和局部变量,那就默认为this.例如,sysout里面的name没有this,因为没有name形参和局部变量,则还是会找到属性变量name,效果也等同于this.name
      */
     public void outshow(){
           System.out.println(this.name+"    "+this.age+"    "+this.tel);
     }
}
使用构造方法
public class Stu_reloadTest {

     public static void main(String[] args) {
           // TODO 自动生成的方法存根
           Stu_reload m1 =new Stu_reload();
           Stu_reload m2 =new Stu_reload("熊昆伦",25,"123456789");
           m2.outshow();
           m1.outshow();
     }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值