一.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;

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

  1. c 子类对象 访问父类对象受保护成员_面向对象三大特征: 继承

    如果子类重写了父类的方法,子类对象又要使用父类的方法怎么办 继承 今日内容 所有的类都直接或者简洁的集成到了Object Object:祖宗类 概述 要定义的类属于已有类的一种时,可以将该类定义为已有 ...

  2. c 子类对象 访问父类对象受保护成员_面向对象的三大特征

    1.封装 封装,就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 封装的好处: 良好的封装可以减少耦合. 类内部的实现可以自由修改. 类具有 ...

  3. c 子类对象 访问父类对象受保护成员_看了这个,你就会搞对象了

    今天我们来聊聊面向对象的一些事情. 什么是面向对象?简单的来讲,面向对象是一种程序设计的思想,一种分析和解决问题的方式.如果说世间每一个事物,都是一个独一无二的个体,那么这个个体就是一个对象--你的女 ...

  4. c 子类对象 访问父类对象受保护成员_面向对象编程(OOP)

    这节讲一下,什么是面向对象(Object Oriented Programming).说面向对象之前,我们不得不提的是面向过程(Process Oriented Programming),C语言就是面 ...

  5. c 子类对象 访问父类对象受保护成员_java面向对象总结

    前言:文章参考<java疯狂讲义>进行总结和归纳,知识要进行输出才算真正的有用. 在java的世界里,一切皆为对象,类是对对象的抽象,来一个例子:Person类 public 有了类,就可 ...

  6. c 子类对象 访问父类对象受保护成员_C++日志(三十四)子类同名成员与作用域分辨符...

    在继承中,如果子类新增成员和父类成员的名称相同,那么就需要辨别访问的是子类成员还是父类成员. 1.什么是作用域分辨符? C++中,作用域分辨符由"::"表示,其作用是限定所访问成员 ...

  7. C++之继承探究(五):子类对象作父类对象使用

    前文:C++之继承探究(四):继承的使用 把子类对象当作父类对象使用 分三种情况:   (1) 将子类对象赋值给父类对象.    --把等号右边的子类对象,赋值给等号左边的父类对象时,仅仅是把子类中来 ...

  8. java如何中断父类方法_java – 如何测试调用父类的受保护(不需要)方法的方法?...

    我陷入了一个非常奇怪的情况. 我有一些我需要测试的特定代码. 这里是: public class A { /* * The real method of real class is so big th ...

  9. c# 不可访问 因为它受保护级别限制

    最近开始学习c#,编了一个程序就发现问题,不可访问 因为它受保护级别限制: 具体如下: 程序: using System; using System.Collections.Generic; usin ...

最新文章

  1. Linux rsync目录同步功能实现
  2. 人工智能28个常见术语,别再说你不懂AI了!
  3. 程序员避免颈椎病攻略
  4. java 克隆的作用_关于java中克隆的学习(一)
  5. 成功解决TypeError: sequence item 0: expected str instance, bytes found
  6. Python assert 断言
  7. SAP Fiori Elements 概述
  8. 【theano-windows】学习笔记十二——卷积神经网络
  9. 上海师范大学计算机技术考研分数线,上海师范大学2019年考研复试分数线已公布...
  10. 重新安装Jenkins
  11. ubuntu系统使用光盘/ISO镜像作为apt-get更新源
  12. linux搭建raid5命令,Linux下用mdadm命令创建软RAID5
  13. excel表中怎么插入visio_Microsoft Visio2007中vsdx文件怎么打开|Visio插入表格方法
  14. VC2008下安装OpenCV2.3.1
  15. UE4入门序列06(Unreal源码编译及打包专用服务器)
  16. 域用户创建和计算机加入域
  17. linux ogv格式转换,使用OGV转换将OGV转换为Linux中的AVI | MOS86
  18. 为什么要做数据分析?数据分析给企业带来了什么?
  19. 计算机应用程序没声音,电脑突然没声音,多半是这三个原因导致的-维修经验...
  20. Springboot项目引入Bootstrap后,图标不能正常显示,报:Failed to decode downloaded font

热门文章

  1. 第10章 指针(二) 首地址----------指针
  2. Ajax Toolkit 控件学习系列(5) ——CalendarExtender使用
  3. mysqldump死住(实际是导致mysqld crash)
  4. linux手动同步文件命令,Linux文件同步命令rsync详解
  5. java nio改造io,java – 将NIO与IO混合
  6. tp5.0路由route.php,thinkphp5.1使用Route路由
  7. android 1396x750设计图,移动端的适配|切图|标注
  8. c#窗口科学计算机,c#窗口科学计算器连等如何实现,大神帮忙一下好么?
  9. python统计分析--4.Logistic回归
  10. 计算机网络应用基础作业二,本科计算机应用基础作业二(全答案)