• Java-->类的成员


    一、方法重载

    在同一个类中,方法名相同、形参列表不同的两个多个方法之间构成重载!overload 调用方法的时候,是根据你传递的实参,来决定到底调用的是重载的哪个方法!!!

    注意:
    1、判断形参列表是否相同时,只看形参的类型,而不管变量名
    2、是否重载和返回值类型没有任何的关系!
    3、形参列表不同:个数不同或者顺序不同都是不同
    4、重载其实多态中的一种情况:静态多态
    
    void speak(){
    	System.out.println("啥都不说");
    }
    
    
    void speak(String msg){
    	System.out.println("说:" + msg);
    }

    以下不是重载

    虽然参数名不同,但是类型不同,这不是重载,这是重复
    void speak(int a){
    }
    void speak(int b){
    }

    二、构造方法

    主要作用:对创建的对象做一些初始化的工作!!!
    构造器、构造函数、构造方法、Constructor

    构造方法的特点:

    1、首先他是一个方法
    2、构造方法名与类名相同!!!
    3、构造方法没有返回值类型!!! 连void都不许写
    4、构造方法是在创建对象  new 类名()  的时候调用的。
    5、构造方法,不能通过对象.方法名()去调用。
    6、构造方法也支持重载!!!

    构造方法分两大类:
    1、无参的构造方法:
    a:如果一个类,没有显示的声明任何的构造方法,则系统会自动添加一个默认的无参构造方法。这个默认的无参构造,没有任何的实现(里面没有任何的代码)。
    b:如果添加任何一个构造方法,则系统不再添加无参的构造方法。
    2、有参的构造方法:

    建议:写类的,总是手动添加一个无参的构造方法!!!

    三、封装性

    面向对象的三大特征:封装性、继承性、多态性

    private 它可以用来修饰属性和方法。代表这个成员是私有。私有的成员,只能在当前的类中访问,出了类之后,别的地方没有权限进行访问。

    public 修饰的属性和方法,在任何的地方都可以访问

    给私有的属性,提供可读的方法
    public int getAge(){
    	return age;
    }
    
    public String getName(){
    	return name;
    }
    
    给私有的属性,提供可写的方法
    public void setAge(int a){
    	age = a;
    }
    
    public void setName(String n){
    	name = n;
    }

    setter、getter方法
    通常意义上的普通类,一般都会封装属性,然后再提供相应的setter和getter方法


    三、this关键字

    变量访问原则:就近原则!

    1、this指代当前类的对象
    指代当前对象,this如果省略之后仍然指代成员变量,则可以省略。

    this指代当前对象,可以调用当前对象的属性和方法!
    public void eat(String food){
    	System.out.println("正在吃:" + food);
    }
    // 对象、实例、非静态  方法
    public void eat(){
    	this.eat("竹子");  //这个位置的this可以省略
    }
    
    注意:如果调用一个方法的时候,没有指定对象,那么其实是省略了this
    在一个类的内部,调换用自己的方法的时候,都会省略this

    2、this可以在构造方法的内部去调用其他的构造方法
    this(参数)

    注意:      
    1、用this调用构造方法的时候,不能 a调用b,b再调用a
    2、this调用构造方法的时候,必须放在构造方法的首行。
    3、一个构造方法如果没有显示的用this去调用其他构造方法或者用super去调用
    父类的构造方法,则这个构造方法,一定默认调用了父类的无参的构造方法。

    3、this可以作为实参传递。代表的是当前对象的引用。

    public void fun(){
        Person person = new Person();
        person.play(this);  //可以把作为参数传递到方法的内部
    }

    四、static关键字

    static 表示静态,可以修饰属性和方法!!!被static修饰的成员称之为静态属性或静态方法。(不被static修饰:实例方法、非静态方法)

    修饰属性的时候,表示这个属性是静态,这个属性就是一种公共的资源,是被所有的对象所共有。

    当访问静态的成员的时候的,最标准的做法是不建议使用对象去访问静态成员!

    用静态的方式去访问静态成员:类名.静态成员 。静态时随着类的加载而初始化的,只有类第一次加载到内存的时候就完成了初始化。

    永远不要使用对象的方式去访问静态东西!!

    访问静态永远使用类名去访问,而不要使用对象去访问。 静态的东西,已经和对象没有多大的关系。静态的东西,是属性类的, 所有静态的属性和静态方法,我们称之为:类方法和类属性

    在实际中,很多的工具类都是提供了很多的静态方法来让我们使用!!!

    静态不能访问非静态!!!
    非静态可以访问静态!!!
    
    在静态方法中会不会可能出现this?    不可能

    static修饰代码快,称之为静态代码块!

    构造代码块:
    {
    	System.out.println("我是代码块");
    }
    注意:先执行构造代码块再执行构造方法。 构造代码在实际没有使用价值
    
    
    静态代码块:
    static{
    	System.out.println("我是静态代码块");
    }
    注意:静态代码块,只有类第一次加载的时候,才会调用,所以静态代码库之执行一次。 在类加载的时候,对类的静态的属性做一些初始化的工作。

    总结:

    类里面都可以放哪些东东?
    
    1、实例变量(属性)
        属于对象的,只能有了对象之后才能访问。
        
    2、静态变量(静态属性)
        不属于某个具体的对象,而是属于类的。使用静态的方式去访问:
        类名.静态
        
    3、实例方法
        属于对象的,只有有了对象之后才能访问。
        
    4、静态方法
        属于类。静态方法也称为类方法。 类名.静态方法。
        静态能访问非静态,非静态可以访问静态!
    
    5、构造方法
        构造方法只有在使用new来创建对象的时候才会执行。
        
    6、代码块
        a:构造代码块
            创建对象的时候调用,而且是优先于构造方法执行!
        b:静态代码块
            类加载到内存中的时候调用。整个生命周期中,静态代码块只执行一次。
  • 相关阅读:
    图解SSH隧道功能
    su和sudo命令的用法
    Linux下下载百度网盘资料
    WPS Office 2019 for Linux来了
    Linux下的录屏软件Kazam
    用hdparm获取硬盘参数
    百度,你能不能有点节操?
    locate的基本用法
    Java class不分32位和64位
    Web站点抓取工具webhttrack
  • 原文地址:https://www.cnblogs.com/xmcx1995/p/5753115.html
Copyright © 2020-2023  润新知