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、默认、protected、public。

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

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

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

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

2.2 java 继承的特性

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

    (2)传递性。C继承于B,B继承于A,C具有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]返回值和父类相同或者是其子类。

 

  

包(package)以及面向对象三个基本特征(继承)的介绍的更多相关文章

  1. javascript面向对象(三):非构造函数的继承

    本文来自阮一峰 这个系列的第一部分介绍了"封装",第二部分介绍了使用构造函数实现"继承". 今天是最后一个部分,介绍不使用构造函数实现"继承" ...

  2. 面向对象之三个基本特征(javaScript)

    1. 前言 2. 封装 3. 继承 4. 多态 5. 总结 1. 前言 了解过面向对象的同学应该都知道,面向对象三个基本特征是:封装.继承.多态,但是对于这三个词具体可能不太了解. 2. 封装 在说封 ...

  3. C++编程之面向对象的三个基本特征

    面向对象的三个基本特征是:封装.继承.多态. 封装 封装最好理解了.封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类 ...

  4. Java学习笔记三十一:Java 包(package)

    Java 包(package) 一:包的作用: 如果我们在使用eclipse等工具创建Java工程的时候,经常会创建包,那么,这个包是什么呢. 为了更好地组织类,Java 提供了包机制,用于区别类名的 ...

  5. Java入门 - 面向对象 - 07.包(package)

    原文地址:http://www.work100.net/training/java-package.html 更多教程:光束云 - 免费课程 包(package) 序号 文内章节 视频 1 概述 2 ...

  6. java中的面向对象的三大基本特征

    转载,原文来自http://blog.sina.com.cn/s/blog_5f79a56a0100c6ig.html 众所周知,java中的面向对象的三大基本特征是:[封装].[继承].[多态] 一 ...

  7. 面向对象第二个特征-继承(Inheritance)

    面向对象第二个特征-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.java中的继承概述 1>.继承概述 多个类种存在相同属性和行为时,讲这 ...

  8. OOP三个基本特征:封装、继承、多态

    面向对象的三个基本特征是:封装.继承.多态. 封装 封装最好理解了.封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类 ...

  9. (转)-编写第一个ROS(创建工作空间workspace和功能包package)

    原文网址:http://www.cnblogs.com/liuamin/p/5704281.html 刚接触ROS,学着写了第一个程序,怕以后忘记,就将其步骤记录下来.. 首先你必须保证你电脑已安装配 ...

随机推荐

  1. 大白话5分钟带你走进人工智能-第十五节L1和L2正则几何解释和Ridge,Lasso,Elastic Net回归

    第十五节L1和L2正则几何解释和Ridge,Lasso,Elastic Net回归 上一节中我们讲解了L1和L2正则的概念,知道了L1和L2都会使不重要的维度权重下降得多,重要的维度权重下降得少,引入 ...

  2. python接口自动化(二十四)--unittest断言——中(详解)

    简介 上一篇通过简单的案例给小伙伴们介绍了一下unittest断言,这篇我们将通过结合和围绕实际的工作来进行unittest的断言.这里以获取城市天气预报的接口为例,设计了 2 个用例,一个是查询北京 ...

  3. WebP 在减少图片体积和流量上的效果如何?MIP技术实践分享

    作者 | Jackson 编辑 | 尾尾 不论是 PC 还是移动端,图片一直占据着页面流量的大头,在图片的大小和质量之间如何权衡,成为了长期困扰开发者们的问题.而 WebP 技术的出现,为解决该问题提 ...

  4. shell简明教程

    shell的格式 shell可以在直接在命令行下输入,也可以保存成shell脚本文件运行.当命令简单并且不需要重复使用,在命令行输入直接执行即可,否则就写成脚本.shell脚本默认文件扩展名为.sh. ...

  5. 读书笔记:深入理解java虚拟机(二)创建对象的时候需要访问哪几块内存

    @TOC 对象在内存中如何储存 对象访问在java语言中无处不在,是最普通的程序行为,但即使是最简单的访问,也会涉及到java栈,java堆,方法去三个最重要的内存区域的关联关系,比如下面这段代码: ...

  6. java游戏开发杂谈 - 游戏编程浅析

    每个游戏,你所看到的它的一切,都是计算机画出来的! 地图是画出来,人物是画出来的,树木建筑是画出来的,菜单按钮是画出来的,滚动的文字.闪烁的图标.云雾烟火,都是画出来的. 游戏编程,所要做的,就是控制 ...

  7. 游戏AI之模糊逻辑(4)

    目录 人类的逻辑 模糊变量 模糊集合 模糊规则 模糊推理 去模糊化 库博方法 结语 if(condition) then dosomething... 这次主要围绕的是游戏AI该如何模仿人类地判断条件 ...

  8. MaxCompute 2.0复杂数据类型之array

    1. 含义 类似于Java中的array.有序.可重复. 2. 场景 什么样的数据,适合使用array类型来存储呢?这里列举了几个我在开发中实际用到的场景. 2.1 标签类的数据 为什么说标签类数据适 ...

  9. java之servlet入门操作教程一续

    本节主要是在java之servlet入门操作教程一  的基础上使用myeclipse实现自动部署的功能 准备: java之servlet入门操作教程一 中完成myFirstServlet项目的创建: ...

  10. Python动态绑定属性slots的使用

    当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性.废话不多说,我们看一个例子: class Person(object): pass ...