面向对象2

1.static(静态的)
(1)概念
使用static修饰的成员,叫类成员;
类成员=类变量+类方法;
没有使用static修饰的成员,叫实例成员;
实例成员=实例变量+实例方法;
(2)实例成员和类成员的本质区别
实例成员是属于对象的;
类成员是属于类的;
类成员被共享,所有对象都可以访问;
(3)具体比较
a.实例变量和类变量的区别
实例变量属于对象,可以被对象调用;
类变量属于类,可以被类调用;
类变量是共享的,可以被所有对象调用;
所有对象和类访问的类变量是同一个变量;
而实例变量是每一个对象独有的变量;
b.实例方法和类方法的区别
实例方法属于对象,可以被对象调用;
类方法属于类,可以被类调用;
类方法被共享,也可以被所有对象调用;
实例方法中可以直接调用所有成员;
类方法中只能直接调用类成员;
2.相互访问
(1)类之间的相互访问
在一个类中,可以访问其他类。
主要访问:类名 构造器 属性 方法 ==
比如:
public class A{
int a1;
public void aa(){
//方法体
}
public A(){
}
}
public class B{
public void bb(){
A a;
a=new A();
a.a1=10;
a.aa();
}
}
(2)同一个类中成员之间的相互访问
在同一个类中,所有成员之间可以相互调用。
比如:
public class Test{
public int c=10;
public int a=tt();
public Test b=new Test();
public Test(){
this(10);
c=20;
System.out.println(c);
tt();
}
public Test(int i){
}
public int tt(){
c=20;
new Test(20);
tt2();
return 10;
}
public void tt2(){
}
}
3.封装
(1)什么是封装?
自己的属性和方法只让可信的类或者对象进行操作,对不可信的类或者对象隐藏,这样的过程叫做封装。
说明:封装主要指的是属性的封装。
(2)怎么封装?
将成员为private(私有),限制其只能在类的内部使用。
比如:私有的属性,私有的方法,私有的构造器。
属性封装:
将属性设为私有的private,提供共有的getter和setter方法来间接访问属性。
(3)有什么好处?
属性的封装,能够让属性中的数据保持完整性。
数据完整性:数据符合程序的要求。
比如:年龄应在0到130之间;电话号码应该是11位;====
4.继承
(1)什么是继承?
一个新类从现有的类派生,这样的过程叫做继承;
在继承的过程中,新类被称为子类,现有的类被称为父类,子类将会继承父类的属性和行为。
(2)怎么继承?
定义子类时,在子类名后写:public class 子类名 extends 父类名{}
(3)有什么好处?
在子类中,无需定义重复的代码。
(4)继承的特点
a.Java中的继承是单继承,也就是一个类只能有一个父类。
b.子类只能继承父类非私有的属性和方法,不能继承构造器。
c.子类可以扩展自己新的属性和方法
d.子类可以对继承的方法进行重写
(5)方法的重写
在子类中,对继承的父类的方法进行重新定义的过程。
语法要求:方法名相同 参数列表相同 返回值类型相同 修饰符相同
5.super(超级的)
(1)继承的实现原理
我们使用new调用子类构造器;
系统会先查看子类继承的父类,系统默认调用父类的无参构造器,创建一个父对象;
然后,使用调用的子类构造器创建子对象,系统将父对象的属性和方法共享给子对象访问;
最后,返回子对象。
说明:我们每创建一个子对象,都有一个对应的父对象。
(2)super的两种使用(super:父对象)
a.当子类定义了和父类同名的属性,或者重写了继承的方法;那么在子类中直接访问时,只能访问子类中属性和方法。
如果想访问被隐藏的父类的属性和方法时,需要使用:
super.父类属性名
super.父类方法名(..)
b.我们使用new调用子类构造器,系统会先查看子类继承的父类,系统默认调用父类的无参构造器,创建一个父对象。
如果我们想让系统使用父类的其他构造器创建父对象,需要在调用的子类构造器中使用:
super(..);
注意:该语句必须是第一条语句。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值