Java类、成员变量、static访问权限(4.1-4.4)



一、 Java中类的定义、类访问权限
1.1 类的定义格式:

[修饰符] class 类名 [extends父类名] [implements接口名列表]


1

1.2 类修饰符的访问权限:
类修饰符访问权限
缺省(默认方式)这种类只能被同一个包中的类访问;
public(公共)它修饰的类能被所有的类访问;
abstract(抽象) 它修饰的类不能被实例化,它可能包含有未实现的方法。
extends(继承)该保留字用来表明新创建的类继承哪个类, 被继承的类称为此类的父类。extends后面只能跟一个父类名称, 因为Java中一个类最多能继承一个类(单继承)。
final(最终) 它修饰的类不能被继承,即不能有子类。
implements (实现)该保留字用来表明这个类实现了哪些接口,接口名可以有多个。

1.3 关于类访问权限的总结:

1. 具有继承关系的子类可以继承父类的一些成员变量,即可以不创建对象就可以直接访问,如果是
同一个包的子类可以继承到public、缺省和protected修饰的变量,如果是不同的包的子类就只能继承
到public 和protected的;
2. 如果是其他类,不管是一个包还是不在一个包,都要创建该类的对象才能引用
3. 如果是main方法,不管是本类还是非本类,要访问实例变量都要创建对象,可以引申到其他所有
的类方法中
4. 私有成员只能在本类中访问,如果在main方法中访问私有成员 必须创建对象


二、 成员变量访问权限


2


2.1 成员变量访问权限总结为:

(1) 访问修饰符缺省
访问修饰符缺省时,成员变量只能被同一包(package) 中的所有类访问,所以也称为包(package)变量。
(缺省访问修饰符实际是friendly修饰符,但因为friendly不是Java语言的关键字,所以friendly修饰符
不能显式说明。)
(2) public(公共)
public修饰的成员变量可以被程序中的任何类所访问。由于public成员变量不受限制, 这易使类的对象引起
不希望的修改,建议成员变量尽量不要使用public修饰符。
(3) protected (受保护)
protected修饰的成员变量可以被本包及有继承关系的类自由访问。
(4) private (私有)
private修饰的成员变量只能在同一个类中使用。这种方式通常是最为安全的。


三、 static(静态)——静态变量访问权限

(1)static修饰的成员变量称为类变量(静态变量)不用static修饰的成员变量又叫对象变量(实例变量)。
(2)**区别:**对象变量依附于具体的对象实例,它的值因具体对象实例的不同而不同,而类变量为该类的所有
对象所共享,它的值不因类的对象不同而不同。
(3)可以通过类来访问静态成员变量,也可以通过该类的对象访问静态成员变量。
  形式:类名.成员变量/对象名.成员变量
(4)反过来,非staic的对象方法可以直接使用static的类变量
(5)类方法不能直接调用类中的对象方法(非static方法)。
(6)定义变量时必须当即赋值。




  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
最好的最简单的Java入门教程。 目录 1 Java概述 1 1.1 Java语言概述 1 1.2 Java虚拟机以及跨平台原理 2 1.3 关于JVM的执行效率 2 1.4 客户端市场的折戟 3 1.5 Java的主要就业方向 3 1.5.1.1 Web开发 3 1.5.1.2 Android开发 3 1.5.1.3 客户端开发 3 1.6 Java的不同版本 4 1.6.1.1 J2SE(Java 2 Platform Standard Edition) 标准版 4 1.6.1.2 J2EE(Java 2 Platform Enterprise Edition) 企业版 4 1.6.1.3 J2ME(Java 2 Platform Micro Edition) 微型版 4 1.7 Java开发环境搭建 4 1.8 JDK 的下载 4 1.9 JDK的安装 5 1.10 环境变量的设置 9 1.11 Eclipse的安装 9 1.12 安装简体中文语言包 11 1.13 第一个Java程序示例 14 1.14 通过Eclipse运行程序 14 1.15 通过命令行运行程序 17 1.16 HelloWorld程序分析 18 1.17 Java和对象的概念 18 1.18 面向对象编程(Object Oriented Programming, OOP) 19 1.19 Java库及其组织结构 21 1.20 Java import及Java的搜索路径 22 1.21 Java的搜索路径 23 2 Java语法基础 24 2.1 Java数据型以及变量的定义 24 2.2 对布尔型的说明 25 2.3 Java数据型转换 26 2.4 自动数据型转换 26 2.5 强制数据型转换 26 2.6 Java运算符 27 2.6.1.1 数学运算符 27 2.6.1.2 关系运算符 27 2.6.1.3 位运算符 27 2.6.1.4 条件运算符 28 2.7 Java流程控制 29 2.8 Java数组的定义和使用 31 2.9 数组的定义和内存分配 31 2.10 数组的初始化 31 2.11 数组引用 32 2.12 数组的遍历 32 2.13 二维数组 33 2.14 Java字符串(String) 35 2.15 字符串操作 35 2.15.1.1 1) length() 方法 36 2.15.1.2 2) charAt() 方法 36 2.15.1.3 3) contains() 方法 36 2.15.1.4 4) replace() 方法 36 2.15.1.5 5) split() 方法 36 2.16 Java StringBuffer与StringBuider 37 2.17 StringBuffer的主要方法 37 2.17.1.1 1) append() 方法 37 2.17.1.2 2) deleteCharAt() 37 2.17.1.3 3) insert() 方法 38 2.17.1.4 4) setCharAt() 方法 38 2.18 String和StringBuffer的效率对比 38 2.19 StringBuilder 39 2.20 总结 39 2.21 强调一下编程风格 40 3 Java与对象 42 3.1 Java的定义及其实例化 42 3.2 构造方法 42 3.3 创建对象 43 3.4 访问成员变量和方法 44 3.5 Java访问修饰符 45 3.6 public:公有的 45 3.7 protected:受保护的 45 3.8 private:私有的 46 3.9 默认的:不使用任何关键字 47 3.10 访问控制和继承 47 3.11 如何使用访问控制符 47 3.12 Java变量的作用域 48 3.13 Java this关键字详解 49 3.14 使用this区分同名变量 49 3.15 作为方法名来初始化对象 50 3.16 作为参数传递 51 3.17 Java方法重载 52 3.18 Java的基本运行顺序 53 3.19 Java包装、拆箱和装箱详解 54 3.20 包装的应用 54 3.20.1.1 1) 实现 int 和 Integer 的相互转换 54 3.20.1.2 2) 将字符串转换为整数 55 3.20.1.3 3) 将整数转换为字符串 55 3.21 自动拆箱和装箱 56 3.22 再谈Java包 56 3.23 如何实现包 56 3.24 包的调用 56 3.24.1.1 1) 在每个名前面加上完整的包名 57 3.24.1.2 2) 通过 import 语句引入包中的 57 3.25 的路径 57 3.26 包的访问权限 58 3.27 源文件的声明规则 59 3.28 一个简单的例子 59 4 Java继承和多态 61 4.1 继承的概念与实现 61 4.2 Java super关键字 63 4.3 调用隐藏变量和被覆盖的方法 63 4.4 调用父的构造方法 64 4.5 继承中的方法的覆盖和重载 65 4.6 多态和动态绑定 66 4.7 动态绑定 69 4.8 instanceof 运算符 70 4.9 多态对象的型转换 71 4.10 Java static关键字以及Java静态变量和静态方法 72 4.11 static 的内存分配 73 4.12 静态方法 74 4.13 静态初始器(静态块) 75 4.14 静态导入 75 4.15 Java final关键字:阻止继承和多态 76 4.16 之间的关系 78 4.17 依赖(uses-a) 78 4.18 聚合(has-a) 78 4.19 继承 79 4.20 Java Object 79 4.21 equals() 方法 79 4.22 hashCode() 方法 80 4.23 toString() 方法 80
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值