1.包
概念:为了更好的组织类,区别于类名的一个命名空间
包的命名特点:
一般情况下为小写字母,可通过.号来区分包的级别:
第一级 指该项目的类型,如com,org,gov等,
第二级 指项目所开发或者运行的公司名称,如:oracle,sun,huawei 等
第三级 指项目的名称,如:bcms,oa,erp,cms等
第四级 指项目模块的名称,如:bean,action,exception。
作用:
防止与类名发生重复
可按照不同功能去管理类
控制访问权限(主要通过访问权限修饰符来实现)
2.访问权限修饰符
2.1public
公共的,可修饰类,方法,成员变量,内部类
在不同包不同类中都可以访问到。
2.2private
私有的,可修饰方法,属性,内部类,常用于封装。
只能在本类中被访问。
2.3protected
受保护的,可修饰方法,属性,内部类
2.4default
默认的,可修饰类,方法,属性,内部类
可以在同包的类进行访问。
//面向对象的三大特征:封装,继承,多肽3.封装
3.1概念:利用各种访问权限修饰符,对类的一些不安全属性进行私有化隐藏在类的内部,使在外部无法完成对其访问,但可以通过固定方法完成对其的访问,达到即安全又合法的目的
3.2特点:
可通过固定法完成对其的访问
实现了隐藏类的细节
方便加入控制语句
3.3例如:可通过固定法完成对其的访问
public class Anmals { private String name; private int age=13; public String getName() { return name; } public void setName(String name) { this.name =name; } } public static void main(String[] args) { Text text=new Text(); text.setName("输入你想获取的名字"); System.out.println(text.getName());
通过这种方式就可以获取隐藏的属性
3.4单例模式
模式是指由前人总结而成对某一问题解决的模板。
单例模式指的是让一个类在一个程序中只能创建一个对象。
具体步骤为:将构造方法私有化,使其在其他类中不能随便创建对象
public class GuanJian { private static GuanJian guanjian=null; //定义一个GuanJian型的变量 private GuanJian(){ } //将构it造方法私有 public static GuanJian getGuanjian (){ //确保只创建一个对象 if(guanjian==null){ guanjian=new GuanJian(); return guanjian; } return guanjian; } //检测是否成功创建出对象 public static void main(String[] args) { System.out.println(GuanJian.getGuanjian()); System.out.println(GuanJian.getGuanjian()); } }
4.继承
4.1概念:
作用为:子承父类,实现代码的重复利用,提高扩展性。
格式为:
public class Text extends Dog
Text为子类,Dog为父类;
当子类与父类符合 is-a的关系,例如狗是动物的时候,子类就可以继承父类。
4.2特点:
使用extends关键字,一个类只能直接继承一个父类。
继承父类后就可以继承父类中非私有的属性,方法
继承具有传递性,如果C继承B,B继承A,那么C就可以继承A,B中的非私有方法和属性
当一个类中没有继承父类的话,那么这个类默认继承object类
object类是所有类的子类;
public class Dog extends Anmals public class Text extends Dog
4.3继承中的构造方法
在继承中,创建子类对象时,会自动调用构造方法,从上往下依次调用,先初始化父类属性,再初始化子类属性。
public class Text extends Dog { public Text(){ super(); System.out.println("text无参构造方法啊"); } public static void main(String[] args) { Text text=new Text(); text.getAge(); text.getName(); text.play(); } }
使用super()在子类构造方法的第一行,表示对父类构造方法的调用,不写也会默认存在,如果写的话必须写在第一行;
4.4方法的重写
当父类的方法实现不能满足子类的需求时,子类可以进行重写(覆盖);
具体的语法:
方法名相同,参数列表相同,返回值相同,当然两者都可以没有返回值,但需要一致,
访问权限可以扩大,但不可以缩小,例如:
public class Anmals { protected void play() { System.out.println("Aniamls在玩"); } } public class Dog extends Anmals{ public void play(){ System.out.println("狗在天上玩"); } }
@Override:提供注释标签,表示在父类中重写过来的,如果重写语法出现错误,那么@Override就会出现报错,一般@Override写在重写语法的上端。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)