c 子类对象 访问父类对象受保护成员_06-JavaSe面向对象

4f6b4d4aebbc2435dd32aa9461230400.png

一.static

1.它是一种修饰符

2.使用位置:它用来修饰成员变量和成员方法

static修饰成员变量,叫类变量;

static修饰成员方法,叫类方法;

类成员=类变量+类方法

没有使用static修饰成员变量,叫实例变量;

没有使用static修饰成员方法,叫实例方法;

实例成员=实例变量+实例方法

3.类变量和实例变量的区别

实例变量是每个对象独有的属性;类变量是所有对象共享的属性。

实例变量只能被对象访问;类变量可以被类直接访问,也可以被对象访问。

4.类方法和实例方法的区别

实例方法是每个对象独有的方法;类方法是所有对象共享的方法。

实例方法只能被对象访问;类方法可以被类直接访问,也可以被对象访问。

类方法中只能直接访问类变量和类方法;实例方法中可以访问所有成员。

类方法中不能使用this。

5.代码块

代码块会在创建该类对象的时候先执行,首先执行静态代码块(只执行一次),再执行非静态代码块(每次创建对象都执行),再执行构造器,最后执行调用的属性和方法。

二.访问修饰符

1.修饰类

public--该类是公共类,可以被任何其他类访问

缺省(default)--只能被同包下的类访问

2.修饰成员

public:它是公共成员,可以被所有类访问

protected:在本类内部访问,同包下的其他类访问,在不同包下的子类中访问(通过继承来访问)

缺省:在本类内部访问,同包下的其他类访问

private:只能在本类内部访问

三.面向对象的特点(oop)

1.封装

2.继承

3.多态

封装

1.目的:保护成员,将成员包裹起来,不让外部其他类直接访问

2.分类:

属性封装--private

方法封装--private

构造器封装--private

3.编码习惯

在企业中,一般体现属性的封装,其他根据需要可选。

属性封装:

属性设为private,提供公有的setXXX(..)和getXXX()方法来间接访问。

继承

1.概念:父类派生出一个新的子类,让子类拥有父类的非私有的属性和方法。

2.目的:取消子类中重复代码的定义。

3.语法:

【修饰符】 class 子类类名 extends 父类类名{

子类继承的成员:子类中无需定义和父类重复的成员,通过继承就可获得这些成员。

子类扩展的成员

}

4.单继承

一个类最多只有一个父类

5.注意事项

子类只能继承父类的成员变量和成员方法,不能继承父类的构造器。

6.继承的成员

同包下,子类可以继承父类非私有的成员。

不同包下,子类可以继承公有的和受保护的成员。

7.方法的重写(override)

在子类中,对继承的父类方法进行重新定义的现象。

重写原则:

方法名相同

参数列表相同

返回值类型相同

访问修饰符>=父类的

抛出的异常必须>=父类异常

8.继承的原理

new 子类构造器([参数列表]);

执行过程:

系统会选构造一个父对象,然后再构造子对象,将父对象和子对象联系在一起。

说明:子类继承父类,体现在一个子对象有且仅有一个父对象。

9.super关键字

在子类构造器中,调用父类构造器。

super([参数列表]);

注意:该语句是子类构造器中第一条语句;

当前对象的父对象

我们可以使用super来访问父对象的成员。

super.属性名

super.方法名([参数列表]);

多态

1.概念:同一事物的多种形态。

2.分类:

方法的多态--方法的重写、方法的重载

变量的多态--使用父类声明一个变量,该变量中可以存储所有父类对象以及所有子类对象

3.向上转型

父类类名 对象名=new 子类构造器([参数列表]);

说明:子类对象会自动由子类类型向上提升为父类类型。

4.向下转型

父类对象转化成子类对象

子类类名 对象名=new 父类构造器//会出现java.lang.ClassCastException(类型转化异常)

例如:HourlyEmployee he = (HourlyEmployee) new Employee("李四", 3000);

除非:先向上转型,才能向下转型

例如:Employee e=new HourlyEmployee("张三", 5, 3000,12);

HourlyEmployee he = (HourlyEmployee)e;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244445.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

keil中断函数的写法_在 KeilC里,中断子程序与函数有何不同?( )_学小易找答案

【单选题】8051单片机共有( )个中断优先级【单选题】对定时器 0 进行关中断操作,需要复位中断允许控制寄存器的: ( )【多选题】真理向谬误转化的原因,主要在于( )【多选题】“批判的武器当然不能代替武器的批判,物质的力量只能用物质的力量来摧毁,理论一经群众掌握,也会变成物质…

c++ stack 遍历_C/C++内存分配!

一、预备知识—程序的内存分配一个由c/C编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)…

python读取oracle数据到hvie parquet_关于sparksql操作hive,读取本地csv文件并以parquet的形式装入hive中...

说明:spark版本:2.2.0hive版本:1.2.1需求: 有本地csv格式的一个文件,格式为${当天日期}visit.txt,例如20180707visit.txt,现在需要将其通过spark-sql程序实现将该文件读取并以parquet的格式通过外部表的形式…

el-date-picker设置默认日期_程序员必备:Java 日期处理的十个坑

前言整理了Java日期处理的十个坑,希望对大家有帮助。一、用Calendar设置时间的坑反例:Calendar c Calendar.getInstance();c.set(Calendar.HOUR, 10);System.out.println(c.getTime());运行结果:Thu Mar 26 22:28:05 GMT08:00 2020解析&…

scope python_Python标准库Scope

作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明。谢谢!1 模块简介你一定在很多计算机科学课程上听说过作用域。它很重要,如果你不理解它的工作原理,那么就会出现一些令人…

java命令_JAVA与模式之命令模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述命令(Command)模式的:命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化&#xf…

android 16进制 全透明_你有几种实现方案Android 设备唯一标识?

前言项目开发中,多少会遇到这种需求:获得设备唯一标识DeviceId,用于:1.标识一个唯一的设备,做数据精准下发或者数据统计分析;2.账号与设备绑定;3.....分析这类文章,网上有许多资料&a…

链表的数据域怎么使用结构体_一步一步教你从零开始写C语言链表

为什么要学习链表?链表主要有以下几大特性:1、解决数组无法存储多种数据类型的问题。2、解决数组中,元素个数无法改变的限制(C99的变长数组,C也有变长数组可以实现)。3、数组移动元素的过程中,要对元素进行大范围的移动…

python计算bmi_Python编程语言:如何用Python编程来判断体重指数BMI是否健康

上一篇小编分享了自己学习Python语言有关字符串和模块time使用的相关知识,这一篇小编分享给大家的是比较有趣的运用,那就是如何用Python编程来表示自己体重BMI。 用Python程序来算出我们自己的BMI指数,来判断我们自己的健康情况,首…

drbd实现mysql地热备_heartheartbeat+drbd+mysql主库热备

1 环境主机名网卡磁盘mastereth0 桥接模式 eth0(192.168.1.10) 自定义模式(VMnet2)(192.168.2.10)VIP 192.168.1.200/210系统盘20G外接磁盘slaveeth0 桥接模式(192.168.1.20) eth1 自定义模式(VMnet2)(192.168.2.20)VIP 192.168.1.200/210系统盘20G外接磁盘server3eth0 桥接模式…

dba的前景_运维、测试、程序员,这些技术岗位哪个更有前景?

在一个初具规模的互联网公司,从业务方面出发,有很多岗位类型,比如运营、客服、市场、产品、设计、技术等等。在这些大类下面,还要细分各种小类,以技术为例,可分为前端(客户端)、后端、测试、运维、DBA等等&…

mysql深度解析_百万级数据下的mysql深度解析

mysql 作为一款非常优秀的免费数据库被广泛的使用,平时我们开发的项目数据过百万的时候不多。最近花了大量的时间来深入的研究mysql百万级数据情况下的优化。 遇到了很多问题并解决了他们,特此分享给大家。欢迎提出您的宝贵意见!一、百万级数…

python异步实现方式_Python通过yield实现异步

改写程序first函数等待long函数返回值的方式为yield,代码如下: import _thread import time gen None def long(): print (long execute) def fun(): time.sleep(5) result long end gen.send(result) _thread.start_new_thread(fun,()) def first(): print (firs…

免安装版的mysql步骤_mysql免安装版的安装方法及步骤

mysql免安装版的安装方法及步骤发布时间:2020-07-15 14:07:18来源:亿速云阅读:83作者:清晨小编给大家分享一下mysql免安装版的安装方法及步骤,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧&am…

jupyter notebook怎么写python代码_如何在Jupyter Notebook中使用Python虚拟环境?

如何在使用Jupyter Notebook时,解决Python虚拟环境间的切换问题?本文一步步帮你拆解。希望你能够避免踩坑的痛苦,把更多的时间花在愉快的编程上。 痛点 Python目前有两个主版本并存,这很让人苦恼。 一般人对于软件,总是…

cmd检查java_如何通过cmd查看java环境

展开全部JAVA环境变量设置一、下载JDK。62616964757a686964616fe4b893e5b19e31333363376561下载后是一个可执行程序,双击安装,安装路径为C:\Program Files\Java\jdk1.6.0_22\(当然,其他路径也可以),如下图:二、设置环境…

ios 检测是否联网_秋招|阿里 iOS 五轮面经分享,已收到阿里的意向书

作者:aaaaaazzzz链接:https://www.nowcoder.com/discuss/302113来源:牛客网感觉牛客很少看到iOS的面经了,今天收到了阿里的意向书,来分享下面经,希望大家都Offer~!总体感觉面试官都非常好&#…

java spring框架 注解_spring框架之注解的使用

原标题:spring框架之注解的使用今天是刘小爱自学Java的第122天。感谢你的观看,谢谢你。学习内容安排如下:Spring注解的使用。JavaWeb项目的搭建。Spring的Web集成。本来还计划学Spring的junit测试集成的,结果又没时间了。一、Spri…

idea 代码格式化插件_IDEA非常棒的插件,阿里巴巴约定成文的代码公约规范

无规矩,不方圆。每个人都有自己的编码风格,每个公司也有自己的代码规范。规范的代码,无论是自己日常维护,还是以后接盘者来接盘,都能快速定位上手,大大提高效率。作为一个IDEA万年爱好者,这些最…

java der pem_JAVA解析各种编码密钥对(DER、PEM、openssh公钥)

一、DER编码密钥对先说下DER编码,是因为JCE本身是支持DER编码密钥对的解析的,可以参见PKCS8EncodedKeySpec和X509EncodedKeySpec.DER编码是ASN.1编码规则中的一个子集,具体格式如何编排没有去了解,但最终呈现肯定的是一堆有规律的…