标签:
类是拥有共同属性的对象的集合。创建一个新的对象要用到关键字New,New+类名表示实例化一个新的对象,例如:
public class Name(){}
建立一个其他的类
public class Other(){
Name name=new Name();//这就表示实例化一个新的对象
}
实例化后,它拥有类的所有属性和方法。
在每次new一个对象的时候我们都会通过一个模板来创建,而这个模板就是构造函数。java中默认有构造函数,只是未写出,对象的实例化都是通过构造函数。
如果没有写构造函数,系统会默认创建一个无参的构造函数,如果写了,系统就不再创建,对象的实例化就会通过你的构造函数来进行。
构造函数与其他方法的区别
构造函数没有返回值,也不能声明返回值
public class Test{
public Test(){
super();}//无参的构造函数
public Test(int a){
super();}//有参数的构造函数
}
添加多个构造函数的时候,需要应用方法的重载,每个构造函数必须有一个唯一的形参列表。 在构造函数中有super()这个方法,这代表可以调用父类的方法super.方法名
。在所有对象中,他们的根就是object,所以默认的super就是代表的object
this关键字
在多个构造函数中,可以用this关键字来调用其他构造函数,该this语句必须在该构造函数的第一行,否则会发生错误。
public class Test{
int a=0;
public Test(){
this(b);}//a是实参,可以是任意int类型的
public Test(int a){
this.a=a}}//把接收到的a的值赋给开始定义的a
继承中,已有的类称为父类。新的类称为子类。父类可以称为基类、超类
public class Student{
public void say(){//声明实现一个方法
System.out.print("被继承了");}}
//新建一个类去继承Student
public class Test extends Student{
public void test(){
this.say();}通过this或是super关键字来调用父类的方法
@Override//重写父类的方法
public void say(){}
}
在面向对象编程中,当两个或是多个类不相同,但是拥有共同的特征的时候,我们将共同的元素拿出来放到一个父类中。这样使用继承不仅可以重用已有的代码避免代码重复,还可以创建一个易于维护和修改代码的程序
继承中可以使用“is a”关系来判断父类和子类的继承关系是否正确。当使用继承时,我们必须能够说子类is a (是一个)父类,如果是对的,那么继承关系就是正确的
Java中子类只能继承一个父类,但是父类也能拥有父类
final方法 一个方法可以声明为最终的,最终方法不能被重写
public final class Student{}
final方法 当子类重写父类的一个方法时,父类中被重写的方法实质上是被隐藏了。在子类中,要调用父类中的方法,唯一的方法是显示的调用。如果不想子类重写,可以将该方法声明为最终的方法。最终方法不能被子类重写
ps:受保护和默认访问相似的,因为二者都授予可以访问同一包中的其他类。受保护访问类型实际上比默认访问的限制更小,因为受保护访问也授予访问在包外的子类
本类 同包 子类 外包
public √ √ √ √
private √ × × ×
protect √ √ √ ×
默认: √ √ √ ×
↓↓
默认的子类出了包就不能访问
封装是使类中的成员变量都是private,并提供public方法访问这些成员变量的技术。如果一个成员变量被声明为private,那么它就不能被其他类访问,从而隐藏了类中的成员变量.因此,封装也被称为数据隐藏
标签:
原文地址:http://www.cnblogs.com/yeruheqi/p/5384670.html