封装

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. 人工智能-智能创意平台架构成长之路(四)-丰富多彩的banner图生成解密第一部分(对标阿里鹿班的设计)

    我们之前讲了很多都是平台架构的主体设计,应用架构设计以及技术架构的设计,那么现在我们就来分享一下丰富多彩的banner图是怎么生成出来的. banner图的生成我们也是不断的进行迭代和优化,这块是最核 ...

  2. 调用webservice获取电话号码归属地信息

    首先什么是webservice ? 从广义上面讲,任何一个服务器所提供的"数据","内容","方法"等等都可以理解为webservice. ...

  3. Unity3D_10_文件夹目录架构

    一:几个特殊文件夹介绍 1.Editor Editor文件夹可以在根目录下,也可以在子目录里,只要名子叫Editor就可以.比如目录:/xxx/xxx/Editor 和 /Editor 是一样的,无论 ...

  4. Fliptile(枚举+DFS)

    Problem Description Farmer John knows that an intellectually satisfied cow is a happy cow who will g ...

  5. PTA A1014

    A1014 Waiting in Line (30 分) 题目内容 Suppose a bank has N windows open for service. There is a yellow l ...

  6. Vue学习之如何进行调试

    调试方法 vue调式方法,浏览器检查元素进入到console 1.console.log() 2.alert('sd') 3.debugger //程序会运行到这里停止 ![](https://img ...

  7. Vue基础项目配置

    一,使用Vuejs搭建项目需要一些基础配置,这样能使的编程过程事半功倍 1.首先下载nodejs,然后使用nodejs使用NPM命令下载VueCli3.0以上的Vue脚手架.通过脚手架可以使用Vue  ...

  8. JDK 13 都已经发布了,Java 8 依然是最爱

    在 JDK 版本的世界里,从来都是 Oracle 发他的新版本,我们继续用我们的老版本.三年之前用 JDK 7,后来终于升级到了 JDK 8.自从升级了没多久,JDK 就开始了半年发一个新版本的节奏, ...

  9. 【linux】【maven】maven及maven私服安装

    前言 系统环境:Centos7.jdk1.8 私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内的用户使用.当Maven需要下载构件的时候,它从私服请求,如 ...

  10. 对cpu与load的理解及线上问题处理思路解读

    前言 2019双11还有不到2个月就要到来了,大家也都知道服务器在大促期间由于流量的增加势必导致机器的cpu与load变高.因此趁着这个时机正好再好好学习.巩固一下cpu和load的概念,为双11做准 ...