JAVA类的一些知识点

1. 某个类中的私有数据域是不能类本身之外的其他任何类访问的。哪怕继承了他的子类

 

2.关于this的用处。this放在类中,当新建一个对象时,this是指向这个对象的引用,可以用来构造方法,当局部变量和成员变量重名的时候,在方法中使用this表示成员变量以示区分;或者this表示当前对象来使用。

 

3.关键字 super 可以用于两种途径: 1 ) 调用父类的构造方法。 父类的构造方法不会被子类 继承。它们只能使用关键字 super 从子类的构造方法中调用。当类没有构造方法时,它会自动生成一个无参的隐式构造方法,子类构造方法会自动调用父类无参构造方法,但是如果一个子类有多个构造方法,且在一个构造方法调用另一个构造方法,那么该构造方法不会自动调用父类。2 ) 调用父类的方法。一般是没必要通过super调用,但是父类没有无参构造方法时,可以在子类构造方法通过super调用父类有参构造方法。或者父类重写方法里面调用。

 

4.方法重写与方法重载

方法名和形参列表共同组成方法签名

仅当实例方法是可访问时,它才能被覆盖。因为私有方法在它的类本身以外是不能 访问的,所以它不能被覆盖。如果子类中定义的方法在父类中是私有的,那么这两 个方法完全没有关系。 • 与实例方法一样,静态方法也能被继承。但是,静态方法不能被覆盖。如果父类中 定义的静态方法在子类中被重新定义,那么在父类中定义的静态方法将被隐藏。可 以使用语法:父类名 .静态方法名( SuperClassName.staticMethodName) 调用隐藏的 静态方法。

为了避免错误,可以使用一个特殊的 Java 语法,称 为 重 写 标 注( override annotation), 在子类的方法前面放一个 ©Override。

方法重写是指该方法必须使用相同的签名和相同的返回值类型在子类中定义。

方法重载意味着使用同样的名字但是不同的签名来定义多个方法。返回值是可以不相同。仅返回值类型不同的重载是不应该允许的。

 

5.对象转换和 instanceof 运算符

把父类声明变量类型(尽管实际他实际类型是个子类)显式转变为子类。

Object o = new Student(); // Implicit casting

Student b = (Student)o;// Explicit casting

在尝试转换之前确保该 对象是另一个对象的实例。这是可以利用运算符 hstanceof 来实现的。声明类型 决定了在编译时匹配哪个方法。使用 myObject.getDUmeterO 会引起一个编译错误,因为 Object 类没有 getDiameter 方法。编译器无法找到和 myObject.getDiameterC)匹配的方法。 所以,有必要将 myObject 转换成 Circle 类型,来告诉编译器 myObject 也是 Circle 的一个 实例。 为什么没有在一开始就把 myObject定义为 Circle 类型呢?为了能够进行通用程序设 计,一个好的经验是把变童定义为父类型,这样,它就可以接收任何子类型的值.

 

6.数据和方法的可见性

类用public修饰和不用public修饰,前者可以不同包内访问,后者只能同一包下访问。只要public修饰类,那么其他包的类都可以继承他,下面说明是成员访问的可见性。

类可以以两种方式使用:一种是用于创建该类的实例;另一种是通过扩展该类创建它的 子类。如果不想从类的外部使用类的成员,就把成员声明成 private。如果想让该类的用户 都能使用类的成员,就把成员声明成 public。如果想让该类的扩展者使用数据和方法,而不想让该类的用户使用,则把成员声明成 Protected。

如果在类的内部创建该类实例,该实例式可以访问private修饰的变量和方法。

 

使用 private 修饰符可以完全隐藏类的成员,这样,就不能从类外直接访问它们。不使 用修饰符就表示允许同一个包里的任何类直接访问类的成员,但是其他包中的类不可以访 问。使用 Protected 修饰符允许任何包中的子类或同一包中的类访问类的成员。使用 public 修饰符允许任意类访问类的成员。

 

 

2019.2.20

1.今天学习了抽象类和接口有一些需要总结:

abstract修饰符一般这样用:public abstract class 类名 { ... }   abstract 返回值 方法名() { }

抽象类中构造方法用protected修饰,抽象类可以有实现好的方法。

继承接口的子类重写方法一定要有public,因为在接口中public被省略了。

接口可以继承接口。

静态方法中可以直接调用所在类的其他静态方法,却不可以直接调用非静态方法,而必须通过实例化之后调用非静态方法。与此相对的,在非静态方法中却可以直接调用所在类的所有静态方法和非静态方法。

 

2.类的构造方法最好加上可见性修饰符,比如public或者protected。否则容易因为可见性保证,不止类的构造方法,其他方法也尽量加上可见性修饰符号。

 

基本程序总结:因为之前学过c++所以学习java语言还是容易上手,在一些逻辑上比如变量声明,函数,类,程序设计语言都是有着共性。。。但是,java中的数组声明,引用类型,都是需要区分的,一些细节需要进行记忆。以后会进行总结的,java程序设计语言基础算是差不多了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值