static静态
静态的内容在内存中是保留一份的,并且各个对象之间进行共享
推荐使用类名访问静态的内容
特点:
- 数据共享
- 属于类的,并不属于对象
- 优先于对象产生的
package JAVA面向对象;
public class Student2 {
String name;
int age;
static String banji;//static,它是共享的
public Student2(String name,int age,String banji){
this.name=name;
this.age =age;
this.banji =banji;
}
public void xinxi(){
System.out.println("叫"+name+"的那个学生今年"+age+"岁,就读于"+banji);
}
public static void main(String[] args) {
Student2 a = new Student2("张三",19,"高二三班");
Student2 b = new Student2("李四",18,"高二四班");
//后来分班,张三和李四分在同一班级即高二一班
Student2.banji="高二一班";//用类名访问静态的内容
a.xinxi();
b.xinxi();
}
}
包和导包
包:其实本质上就是文件夹
t在代码中需要 写package包名
例如:
给tieba.baidu.com创建包,包名为:com.baidu.tieba,相当于三层文件夹
导包(Alt+Enter):import包+类;
不需要导包的情况:
- 在自己包的情况下
- java.lang包下的所有内容都不需要导包
访问权限
- public:公共的,所有人都可以访问(使用频率高)
- default:包访问权限,在自己包内可以随意访问
- private:私有的(使用频率高)
在自己类里可以随意访问
二、使用类创建对象的权限 & 对象访问成员变量与方法的权限(来源:https://www.cnblogs.com/Ccurie/p/10603337.html)
- 在同一包中:
可以在任何另外一个类中使用public类与友好类创建对象;
创建的对象能够通过“.”运算符操作自己类中不是private的成员变量与方法。
- 不在同一包中:import语句
可以在任何另外一个类中使用public类创建对象;
创建的对象能够通过“.”运算符操作自己类中public的成员变量与方法。
getter和setter
成员变量一般使用private来声明,保护成员变量不被胡乱赋值
- getter:主要是给成员变量赋值,做一定的保护
- setter:从成员变量中获取数据
package com.daobao.entity;
public class Preson {
private String name;
private int age;
//set(放在赋值)
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
if(age<0){
this.age=0;
}else{
this.age=age;
}// 保护年龄,使之符合逻辑
}
//get拿到(放在打印输出)
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
//方法
public void eat(){
System.out.println(this.name+"在吃东西");
}
}
package com.daobao.entity;//包的声明
public class TestPerson {
public static void main(String[] args) {
Preson a=new Preson();
/* 访问权限(在同一包中):
* 可以在任何另外一个类中使用public类与友好类创建对象;
* 创建的对象能够通过“.”运算符操作自己类中不是private的成员变量与方法。
*/
a.setName("张三");
a.setAge(-2);
System.out.println(a.getName());
System.out.println(a.getAge());
a.eat();
}
}