目录:
一.封装
二.封装扩展之包,自定义包
三.访问限定符
四.static成员
一.封装:封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行 交互。面向对象程序三大特性:封装、继承、多态。而类和对象阶段,主要研究的就是封装特性。
下面给一段,用private封装成员变量,的代码:这里用private把他们封装起来,封装后提供,get,set公开接口来给予部分功能访问。
class Student {
//用private把他们封装起来
private String name;
private int age;
private int id;
public static String className;
public void doClass (){
}
public Student(String name, int age, int id) {
this.name = name;
this.age = age;
this.id = id;
}
//封装后提供,get,set公开接口来给予部分功能访问
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
二.封装扩展之包:
import java.util.Date;
public class Test {
public static void main(String[] args) {
Date date = new Date();
// 得到一个毫秒级别的时间戳
System.out.println(date.getTime());
}
}
import java.util.*;
public class Test {
public static void main(String[] args) {
Date date = new Date();
// 得到一个毫秒级别的时间戳
System.out.println(date.getTime());
}
}
5.可以使用import static导入包中静态的方法和字段。代码如下:
:
import static java.lang.Math.*;
public class Test {
public static void main(String[] args) {
double x = 30;
double y = 40;
// 静态导入的方式写起来更方便一些.
// double result = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
double result = sqrt(pow(x, 2) + pow(y, 2));
System.out.println(result);
}
}
二.自定义包:
三.访问限定符:
下面给一张逻辑清晰的图:(prtected下次补上)。
1.如果不加上面的访问限定符就是默认权限,默认权限在同一个包中(也就是同一个文件中)可以相互任意进行访问。下面给几个例子:
2,如果加上public修饰则在不同包(文件夹)里都可以相互使用。
四.static成员
2.静态成员变量特性
3.说到加载:源代码储存在磁盘中--》javac编译成字节码文件--》java命令在JVM中运行(这个过程就叫做加载)(这个过程中类不会被重复加载)。
如图:
4.static修饰成员变量访问可以通过对象的引用访,也可以通过类来访问,这里推荐类来访问
具体代码如下:
class Student {
//用private把他们封装起来
private String name;
private int age;
private int id;
public static String className;
public void doClass (){
}
public Student(String name, int age, int id) {
this.name = name;
this.age = age;
this.id = id;
}
//封装后提供,get,set公开接口来给予部分功能访问
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public void show() {
System.out.println("姓名" +this.name + "学号" + this.id + "年龄"
+ this.age + " " + "班级" + className);
}
public static void main(String[] args) {
Student student1 = new Student("xiaohua", 12, 23005678);
// student1.className = "1";
Student.className = "1班";//学生都属于一班
student1.show();
System.out.println(Student.className);
Student student2 = new Student("xiaohua", 12, 23005678);
// student1.className = "1";
student2.show();
Student student3 = new Student("xiaohua", 12, 23005678);
// student3.className = "3";
student3.show();
}
}
由于被static修饰这里的三个学生都属于同一个班。如图运行结果
这里一班是公用的三个学生的中,调试,如图: