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. .NET Core IdentityServer4实战-开篇介绍与规划

    一.开篇寄语 由于假期的无聊,我决定了一个非常有挑战性的活动,也就是在年假给大家带来一个基于OAuth 2.0的身份授权框架,它就是 IdentityServer4 ,如果没有意外的话,一定可以顺利的 ...

  2. 基于Unity的AR开发初探:第一个AR应用程序

    记得2014年曾经写过一个Unity3D的游戏开发初探系列,收获了很多好评和鼓励,不过自那之后再也没有用过Unity,因为没有相关的需求让我能用到.目前公司有一个App开发的需求,想要融合一下AR到A ...

  3. SpringBoot从零单排 ------ 拦截器的使用

    在项目开发中我们常常需要对请求进行验证,如登录校验.权限验证.防止重复提交等等,通过拦截器来过滤请求.自定义一个拦截器需要实现HandlerInterceptor接口.代码如下: import org ...

  4. 基于 HTTP 请求拦截,快速解决跨域和代理 Mock

    近几年,随着 Web 开发逐渐成熟,前后端分离的架构设计越来越被众多开发者认可,使得前端和后端可以专注各自的职能,降低沟通成本,提高开发效率. 在前后端分离的开发模式下,前端和后端工程师得以并行工作. ...

  5. C# 将object对象转换为实体对象

    C# 将object对象转换为实体对象.一共两种方法. 第一种方法,代码如下: /// <summary> /// 将object对象转换为实体对象 /// </summary> ...

  6. 为什么Eureca Client要分成服务提供者和服务消费者呢?

    [学习笔记]转载 6)为什么Eureca Client要分成服务提供者和服务消费者呢? 通 常来讲,服务提供方是重量的耗时的,所以可能在n台机器上.而服务消费方是轻量的,通过配置ribbon和@Loa ...

  7. 6.使用桌面版AI伴侣或手机版AI伴侣实时预览编程效果

    1.根据自己系统下载对应版本AI伴侣,最好解压到D盘根目录. 运行ailaunch.bat ,可以启动原本自带的2.46版AI伴侣.运行AI伴侣247.bat可以启动汉化2.47版的AI伴侣.并且默认 ...

  8. MySQL数据库优化方案

    优化索引.SQL语句.分析慢查询: 设计数据表的时候,严格根据数据库的设计范式来设计数据库表: 使用缓存,把经常访问的又不经常更改的数据放到缓存中,能减少磁盘I/O: 优化硬盘,使用SSD,使用磁盘队 ...

  9. NodePort,LoadBalancer还是Ingress?我该如何选择 - kubernetes

    原文:http://mp.weixin.qq.com/s/dHaiX3H421jBhnzgCCsktg 当我们使用k8s集群部署好应用的Service时,默认的Service类型是ClusterIP, ...

  10. 467. [leetcode] Unique Substrings in Wraparound String

    467. Unique Substrings in Wraparound String Implement atoi to convert a string to an integer. Hint: ...