网站安全狗服务名,企业网站最底下做的是什么,猎头公司logo,河南郑州百姓网封装
封装作为面向对象三大特性#xff08;封装#xff0c;继承#xff0c;多态#xff09;之一#xff0c;那如何实现封装性的呢#xff1f;就又得拿出上面的访问修饰限定符的图 public: 就是在任何地方都可以访问 protected: 涉及子类在介绍继承时详细介绍 default: …封装
封装作为面向对象三大特性封装继承多态之一那如何实现封装性的呢就又得拿出上面的访问修饰限定符的图 public: 就是在任何地方都可以访问 protected: 涉及子类在介绍继承时详细介绍 default: 什么都不写时默认权限在当前包下面访问 protect: 在当前类中可以访问。
包
包的概念
包就像我们创建的文件夹一样里面包含多种类。跟c语言的头文件差不多。
导包
那在C语言中我们要导入头文件自然在Java中使用Java自带的类也要导包这种意义上导包就是要写到类使用 关键字import导包如下
import java.util.Date;
public class Test { public static void main(String[] args) {Date date new Date();// 得到一个毫秒级别的时间戳System.out.println(date.getTime());}
}当我们需要使用该包下的其他类时Java中有一个简便写法 import java.util.*;但是如此写就会在有些情况下出先bug例如 util 和 sql 中都存在一个 Date 这样的类, 此时就会出现歧义, 编译就会出错 所以这种导包不建议。 在这种情况下要解决就需要将包在程序写上 java.util.Date date new java.util.Date();这不是多此一举吗。
idea中自定义包
包名采用小驼峰首单词首字母小写其余单词首字母大写 1.鼠标右击文件 2.左击new 3.左击package
常见包
java.lang:系统常用基础类(String、Object),此包从JDK1.1后自动导入不用输。java.lang.reflect:java 反射编程包;java.net:进行网络编程开发包。java.sql:进行数据库开发的支持包。java.util:是java提供的工具程序包。(集合类等) 非常重要java.io:I/O编程开发包。
static成员
成员变量/方法被static修饰就是静态成员变量/方法 这样的成员是所有对象共用的
静态成员变量特性
不属于某个具体的对象是类的属性所有对象共享的不存储在某个对象的空间中既可以通过对象访问也可以通过类名访问但一般更推荐使用类名访问类变量存储在方法区当中生命周期伴随类的一生(即随类的加载而创建随类的卸载而销毁)
静态成员方法特性
不属于某个具体的对象是类方法可以通过对象调用也可以通过类名.静态方法名(…)方式调用更推荐使用后者不能在静态方法中直接访问任何非静态成员变量要访问就必须要实例化对象来通过对象调用。例如
class Student{private string name zhangsan;public static fun(){Student student new Student();student.name lisi;}
}应用场景
在这一个类中实例化任何对象时每个对象都一样的成员变量/方法就可以用static来修饰例如要对一个班级中的同学写成绩管理系统那他们的班级就是一样的就可以用static修饰。
static成员变量的初始化
就地初始化在定义时直接给出初始值public static className 一班;默认初始化通过构造方法中进行赋值通过set方法进行赋值静态代码块初始化
代码块
代码块用{}括起来的代码都是代码块有很多种在这就先介绍两种。
静态代码块
定义形式很简单定义在类内成员方法外如下
static {
//代码
}1.它一般用于初始化静态成员变量。 2.只要类加载就会调用执行且执行一次。 3.如果有多个静态代码块且里面对同一变量进行了操作就以最后一个为准。例如
class Student{private string className 一班;static{className 二班;}
}
//这种结果就是二班
class Student{static{className 二班;}private string className 一班;
}
//这种结果就是一班构造代码块
也叫非静态代码块还叫实例代码块。定义在类内成员方法外。
class Student{private string name;private string className 一班;static{className 二班;}{name zhangsan;}
}特性 1.一般用来初始化非静态成员变量 2.只要实例化对象就会调用执行。 3.如果有多个静态代码块且里面对同一变量进行了操作就以最后一个为准。
静态代码块构造代码块构造方法调用顺序
先执行静态代码块且只执行一次 在执行构造代码块 最后执行构造方法。
对静态static的我的理解
那就是static静态的东西不依赖对象它的调用就直接用类 在静态中要想调用非静态的就必须要实例化对象来通过对象调用。