博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
包(package)以及面向对象三个基本特征(继承)的介绍
阅读量:5836 次
发布时间:2019-06-18

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

 

1.包(package)

    (package) 用于管理程序中的类主要用于解决类的同名问题包也可以看成一个目录。

  包的作用

  [1] 防止命名冲突。

  [2] 允许类组成一个单元(模块),便于管理和维护。

  [3] 更好的保护类、属性和方法 。

1.1 如何定义包

    使用package进行定义,应放在源文件有效代码的第一句。// package 路径

  包的命名原则:始终保持类的全路径唯一。

  规范:

  (1)包名由小写字母组成,不能以圆点开头或结尾。(圆点为包的分隔符)。

  (2)包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名。如:package net.javagroup.xx

  (3)包名后续部分依不同机构内部的规范不同而不同如:package net.javagroup.project1.projectname.xx

package test.newtest;public class Test{	public static void main (String[] args){		System.out.println("Hellow");	}}

  当编译带包的源文件时写法是:javac -d 目的地 源文件

  编译完成后Test字节码文件的路径是 test.newtest.Test 。

1.2 如何导入包

    使用import进行导入操作,告知该类需要的其他类在哪个路径。

  使用方法:(1)import test.newtest.Test // 导入test.newtest目录下的Test类。

       (2)import test.newtest.*// 导入test.newtest目录下的所有类。

1.3 jvm提供的一些包

1.4 静态导入

    在JDK1.5以后,可以导入类中的静态变量和方法。

  使用方法:import static 路径.路径下的类名*;  例如:import static cn.sxt01.Calc.*;

2.继承

    为了提取两个类中公共的代码,可以使用继承抽取重复性的代码到一个公共类中这个公共的类称为父类(super class)。继承于父类的类称为(sub class)。

2.1 访问修饰符

    java中存在4访问修饰符,分别是private、默认、protectedpublic。

      (1)private:私有的,只能在本类可以访问

      (2)friendly:默认的,包可访问也称包访问权限。

      (3)protected:受保护的, ,访问 ,同包可访问 。

      (4)public:公共的,可以访问。

2.2 java 继承的特性

   (1) 单根性。在java一个类只能有一个直接父类。

    (2)传递性。C继承于BB继承于AC具有A的特性和行为。

    类B继承于类A,使用关键字extends,B拥有了A中非私有的属性和方法。其中不能被继承的父类成员有:

      (1)父类中的private成员;

      (2)子类与父类不在同一个包,使用了默认访问权限的成员;

      (3)父类中的构造方法

public class Person{	String name;	int age;	public void showInfo(){		System.out.println("姓名:"+name);		System.out.println(",年龄:"+age);	}}  //父类
public class Student extends Person{	} //子类,使用关键字extends进行定义
public class Test01{	public static void main(String[] args){		Student s = new Student();		s.name = "张三";		s.age = 20;		s.showInfo();	}}//当需要使用多个类时,可以使用继承,提取多个类中共有的部分,从而达到简化代码的效果。

2.3 super关键字

    super关键字表示父类对象只是一个关键字,无引用的效果。

  super的作用:

  (1)super访问父类构造方法

public Dog(String name,int health,int love,String strain){		super(name,health,love);		this.setStrain(strain);}

 

  (2)super调用父类的私有属性(注意:私有的属性不能用super访问。)

public class Fruit{	float price;}
public class Apple extends Fruit{	public void showInfo(){		System.out.println("价格:"+super.price);	}}

 (3)super调用父类的非私有方法

public void print(){		super.showInfo();		System.out.println(",我是一只"+this.getStrain());	}

  (*当子类中没有与父类同名的属性时,直接使用属性名this.属性名也可以访问父类的非私有属性,但是访问速度相较于super.属性名会比较慢,不推荐使用)

 

 2.4 方法的重写(overwrite/override)

    子类父类继承过来的方法不能满足自身需要时,子类可以根据自身情况选择部分重写或者完全重写。

  方法重写建立在继承基础没有继承,就没有重写!

  (1)部分重写

public void showInfo(){

  super.showInfo();

  System.out.println("我是一只"+this.getStrain()); //在从父类继承过来的方法的基础上添加新的需要。

}

 

   (2)完全重写

public void showInfo(){		System.out.println("--"+super.getName()+"--");		System.out.println("健康值:"+super.getHealth());		System.out.println("亲密度:"+super.getLove());		System.out.println("品种:"+this.getStrain());  //对父类的方法进行完全重写	}

 

  重写规则

  [1]方法名称相同。

  [2]参数列表相同。

  [3]子类的访问权限一定 >= 父类访问权限。

  [4]返回值和父类相同或者是其子类。

 

 

 

 

 

  

 

转载于:https://www.cnblogs.com/w312308542/p/10753033.html

你可能感兴趣的文章
MySQL出现Access denied for user ‘root’@’localhost’ (using password:YES)
查看>>
通过Roslyn构建自己的C#脚本(更新版)(转)
查看>>
红黑树
查看>>
【数据库】
查看>>
WindowManager.LayoutParams 详解
查看>>
Android的Aidl安装方法
查看>>
Linux中rc的含义
查看>>
实现跨交换机VLAN间的通信
查看>>
Java基础之String,StringBuilder,StringBuffer
查看>>
安卓中数据库的搭建与使用
查看>>
AT3908 Two Integers
查看>>
C++ 0X 新特性实例(比较常用的) (转)
查看>>
node生成自定义命令(yargs/commander)
查看>>
.NET 设计规范--.NET约定、惯用法与模式-2.框架设计基础
查看>>
win7 64位+Oracle 11g 64位下使用 PL/SQL Developer 的解决办法
查看>>
BZOJ1997:[HNOI2010]PLANAR——题解
查看>>
HTML5新手入门指南
查看>>
opennebula 开发记录
查看>>
sql 内联,左联,右联,全联
查看>>
C++关于字符串的处理
查看>>