封装

1,将属性定义为私有的(private)   不能通过  对象名.属性  来直接访问,但是可以通过方法来间接的访问,

2,封装的意义:公有属性可以被随意修改,并且不能被程序察觉。封装后,别人通过方法来访问属性时,我们可以添加限制,访问可以被程序察觉。

下面我们用封装定义一个手机类(这种类一般我们称为 javabean)

 public class Phone {
private String type;
private int price;
private String color; public String getType(){
return type;
}
public void setType(String type){
this.type=type;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
} }

注意  

1,类中属性和方法的定义顺序没有先后之分

2,当参数与属性重名时,计算机会优先考虑参数(这本身是错误的,不要这样做)

继承

继承:子类继承父类的几乎所有内容(属性跟方法)  关键字 extends

1,那么什么不能被继承呢? private(私有属性)和构造方法不能被继承

2,所有类都是object的子类

3,在java中只能单继承

重写:当子类继承过来的方法不满意,重新覆盖这个方法。

1,当重写了父类的方法,调用的是子类重写过的方法,不会调用父类的那个方法。

 public class Person {

      public void eat(){
System.out.println("我是父类的方法吃...");
}
}
 public class Student extends Person {
//重写 方法名与父类相同 会覆盖父类的方法
@Override
public void eat() {
System.out.println("我是子类中重写的父类方法吃...");
}
}
 public class Text {
//我是测试类
public static void main(String[] args) {
Student s=new Student();
s.eat();
}
}
//控制台输出结果为:
//我是子类中重写的父类方法吃...

2,super  可以在子类中调用父类的方法

 public class Student extends Person {
//重写 方法名与父类相同 会覆盖父类的方法
@Override
public void eat() {
//调用父类中的eat()
super.eat()
System.out.println("我是子类中重写的父类方法吃...");
}
}
//若再进行测试,控制台输出结果为:
//我是父类的方法吃...
//我是子类中重写的父类方法吃...

重载:方法名与父类相同,参数列表不同 ,是根据参数列表来匹配执行哪个方法

 public class Student extends Person {
//重载 方法名与父类相同,参数列表不同
public void eat(String s) {
System.out.println("我是子类中重载的父类方法吃...");
}
} public class Text {
//我是测试类
public static void main(String[] args) {
Student s=new Student();
//参数对应就会调用相应的方法
s.eat("sss");
}
}
//结果为:我是子类中重载的父类方法吃...

要点:当创建子类对象的时候,会先初始化父类的对象。如果没有显示调用父类的构造方法,默认调用父类的无参的构造方法。

构造方法重载

 public Student(String sex){
System.out.println("------>sex");
//如果没有显示调用父类的构造方法,默认调用父类的无参的构造方法。
this.sex = sex ;
} public Student(String sex,int age){
this(sex); // this() 表示的是本类其他的构造方法,根据参数寻找是哪个构造方法。当表示其他构造方法的时候必须必须放在第一行。
this.age = age ;
System.out.println("------>sex age ");
} public Student(){
super("sssss");// 显示调用父类的构造方法,不需要方法名。当super父类构造方法的时候,必须放在第一行。
System.out.println("-----Student的构造方法------");
}

Java学习笔记之封装与继承的更多相关文章

  1. Java 学习笔记 ------第六章 继承与多态

    本章学习目标: 了解继承的目的 了解继承与多态的关系 知道如何重新定义方法 认识java.lang.object 简介垃圾回收机制 一.继承 继承是java面向对象编程技术的一块基石,因为它允许创建分 ...

  2. Java学习笔记 07 接口、继承与多态

    一.类的继承 继承的好处 >>使整个程序架构具有一定的弹性,在程序中复用一些已经定义完善的类不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性 继承的基本思想 >>基 ...

  3. Java学习笔记(九)——继承

    一.继承 1.概念: 继承是类于类之间的关系,是一种"is a "的关系 Ps: Java是单继承 2.优势: (1)子类直接拥有父类的所有属性和方法(除了privata) (2) ...

  4. [core java学习笔记][第五章继承]

    5.1 类.超类和子类 定义 class Manager extends Employee { 添加方法和域 } 权限 派生类不能使用基类的私有变量 派生类调用基类的方法 利用super这个关键词 s ...

  5. 1.11(java学习笔记)封装

    封装将内部细节封装起来,只暴露外部接口. 比如我们的电视就将复杂的内部线路用外壳封装起来,只留下外部按钮或遥控,用户只需要知道按钮或遥控的作用就可以,无需明白电视内部是如何工作. 而且封装也保障了安全 ...

  6. Java学习笔记之——封装

    1. 属性和方法放到类中 2. 信息的隐藏 (1) 属性的隐藏 (2) 方法实现的细节隐藏 3. 权限修饰符: 从小到大的顺序:private->默认的(什么都不写)->protected ...

  7. java学习笔记之基础篇

    java选择语句之switch   //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...

  8. 《Java核心技术·卷Ⅰ:基础知识(原版10》学习笔记 第5章 继承

    <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 目录 <Java核心技术·卷Ⅰ:基础知识(原版10>学习笔记 第5章 继承 5.1 类.超类和子类 5.1 ...

  9. java学习笔记6--类的继承、Object类

    接着前面的学习: java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) java学习笔记2--数据类型.数组 java学习笔记 ...

随机推荐

  1. Python函数编程——闭包和装饰器

    Python函数编程--闭包和装饰器 一.闭包 关于闭包,即函数定义和函数表达式位于另一个函数的函数体内(嵌套函数).而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量.参数.当其中一个 ...

  2. postman--请求以及变量设置的实例练习

    我们可以在2个地方添加需要执行的js脚本,一个是Pre-request Script,还有一个tests,我们先看请求之前的 1 在请求被发送到服务器之前:就是在“Pre-request Script ...

  3. 线上问题排查神器 Arthas

    线上问题排查神器 Arthas 之前介绍过 BTrace,线上问题排查神器 BTrace 的使用,也说它是线上问题排查神器.都是神器,但今天这个也很厉害,是不是更厉害不好说,但是使用起来非常简单.如果 ...

  4. 本地代码上传至github

    一. 环境及工具 1.下载并安装git版本管理工具 到 http://git-scm.com/downloads 下载并安装git版本管理工具 2.Windows客户端 3.配置github账号密码及 ...

  5. 6 个 K8s 日志系统建设中的典型问题,你遇到过几个?

    作者 |  元乙  阿里云日志服务数据采集客户端负责人,目前采集客户端 logtail 在集团百万规模部署,每天采集上万应用数 PB 数据,经历多次双 11.双 12 考验. 导读:随着 K8s 不断 ...

  6. 利用github搭建私人maven仓库

    一.背景 最近在做HBase的项目,不免会引用到一些工具类,如StringUtils,NumberUtils,DateUtils这些,公司底层有封装好可以直接使用. 但是项目完成,用maven打包部署 ...

  7. 松软科技课堂:SQL--UNIQUE约束

    SQL UNIQUE 约束(文章来源:松软科技-www.sysoft.net.cn-) UNIQUE 约束唯一标识数据库表中的每条记录. UNIQUE 和 PRIMARY KEY 约束均为列或列集合提 ...

  8. Python3 爬虫之 Scrapy 框架安装配置(一)

    博客地址:http://www.moonxy.com 基于 Python 3.6.2 的 Scrapy 爬虫框架使用,Scrapy 的爬虫实现过程请参照本人的另一篇博客:Python3 爬虫之 Scr ...

  9. mybatis源码专题(2)--------一起来看下使用mybatis框架的insert语句的源码执行流程吧

    本文是作者原创,版权归作者所有.若要转载,请注明出处.本文以简单的insert语句为例 1.mybatis的底层是jdbc操作,我们先来回顾一下insert语句的执行流程,如下 执行完后,我们看下数据 ...

  10. git报错,远程克隆和更新不下来解决方法

    报错: error: RPC failed; curl 18 transfer closed with outstanding read data remainingfatal: The remote ...