博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java-->类的成员
阅读量:5277 次
发布时间:2019-06-14

本文共 2656 字,大约阅读时间需要 8 分钟。

一、方法重载

在同一个类中,方法名相同、形参列表不同的两个多个方法之间构成重载!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再调用a2、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:静态代码块 类加载到内存中的时候调用。整个生命周期中,静态代码块只执行一次。

转载于:https://www.cnblogs.com/xmcx1995/p/5753115.html

你可能感兴趣的文章
ES6基础知识清单
查看>>
Java线程池ThreadPoolExecutor使用和分析
查看>>
Power of Two
查看>>
批量隐藏注释
查看>>
过滤选择器——可见性过滤选择器
查看>>
testing
查看>>
Oracle 树操作(select…start with…connect by…prior)
查看>>
学习PHP注意事项
查看>>
vue路由实例
查看>>
PHP之冒泡排序
查看>>
23 服务IntentService Demo6
查看>>
jquery 元素居中间
查看>>
如何判断PeopleEditor的值为空
查看>>
ie8.0 不能用document.all兼容IE7模式
查看>>
gRPC
查看>>
SharePoint 2010 工作流解决方案:将 SharePoint Designer 可重用工作流导入 Visual Studio...
查看>>
Java - Collection
查看>>
C# 调用WSDL接口及方法
查看>>
AbpZero之企业微信---登录(拓展第三方auth授权登录)---第一步:查看AbpZero的auth第三方登录的底层机制...
查看>>
perl安装
查看>>