目录
1.类
1.1什么是类
1.2类的构成
2.对象
2.1什么是对象
2.2对象的概念
2.3类和对象之间的关系
3.封装
3.1封装的概念
3.2封装的作用
3.3封装的特性
3.4封装的优点
3.5封装的实例
4.修饰符
4.1访问修饰符
4.2非访问修饰符
4.3 static成员的调用
———————————————————————————————————————————
1.类
1.1什么是类
类其实是个模板,是一个具有共同特点的集合。比如说饮料:都有包装,都有颜色,都有味道,都是被喝的东西。这些都行都是抽象出来的属性和行为。
1.2类的构成
类是由抽象出的属性和行为组成的对一种实物的描述,实物的属性是类的成员变量,实物的行为是类的方法。
2.对象
2.1什么是对象
我们如何在代码中表示一个现实世界事物属性和行为。属性和行为是物体的模板,那么我们把这个模板进行填充,如:属性是颜色,我们把颜色填充成白色,属性是形状,我们把形状填充成圆柱体行为是点燃,那么把行为填充成燃烧红色的火焰那么我们就得出了一个结果:白色的圆柱体可以燃烧红色的火焰
2.2对象的概念
现实世界中任何物体都能被当作是对象,不过在正常开发的时候通常只是在一定的范围去考虑和认识与系统相关的事物并用系统中对象抽象的表示他们。
2.3类和对象之间的关系
类是物体属性和行为的模板;对象是物体的具体实现
3.封装
3.1封装的概念
•在面向对象程式设计方法中,封装是指一种将抽象性函数式接口的实现细节部分包装、隐藏起来的方法。
•封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。
•要访问该类的代码和数据,必须通过严格的接口控制。
3.2封装的作用
• 封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片 段。• 适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
3.3封装的特性
1.隐藏信息 (纸盒封装了里面的物品,让我们无法看到盒子内的物品)
2. 安全性 (纸盒里面的物品由于纸盒的封装变成了一个整体,减少了丢失的可能性,也减少了碰撞时损坏的可能性)
3.赋值与取值 (零散的物品不易运输,但放进盒子后,通过运输盒子,再从盒子中将物品拿出可达到相同目的,却更加便捷)
3.4封装的优点
一、减少耦合(良好的封装能够减少耦合,提高系统独立性)
二、可重用性(封装重复代码,提高软件的可重用性)
三、精确控制 (可以对成员变量进行更精确的控制)
四、安全性 (隐藏信息,实现细节,降低了构建大型系统的风险)
3.5封装的实例
public class Person {
private int id;
private String pwd;
private String health;
public Person(){
System.out.println("欢迎回来");
}
public Person(int inputId){
this.id = inputId;
System.out.println("欢迎回来");
}
public Person(int inputId,String inputPwd){
this.id = inputId;
this.pwd = inputPwd;
System.out.println("欢迎回来");
}
public Person(int inputId,String inputPwd,String inputHealth){
this.id = inputId;
this.pwd = inputPwd;
this.health = inputHealth;
System.out.println("欢迎回来");
}
public int getId() {
return id;
}
public String getHealth() {
return health;
}
public String getPwd() {
return pwd;
}
public void setId(int id) {
this.id = id;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public void setHealth(String health) {
this.health = health;
}
}
public class PersonTest {
public static void main(String[] args) {
Person person = new Person(2,"123456","你好");
System.out.println(person.getId());
System.out.println(person.getPwd());
System.out.println(person.getHealth());
}
}
4.修饰符
4.1访问修饰符
default (即缺省,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法
private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
public : 对所有类可见。使用对象:类、接口、变量、方法
protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
4.2非访问修饰符
static 修饰符,用来修饰类方法和类变量
final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的
abstract 修饰符,用来创建抽象类和抽象方法
synchronized 修饰符,主要用于线程的编程,synchronized 关键字声明的方法同一时间只能被一个线程访问。synchronized 修饰符可以应用于四个访问修饰符
volatile 修饰符,volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
4.3 static成员的调用
public class Demo04 {
//static
static String name;
public static void main(String[] args) {
//可以不创建对象直接给static属性赋值
Demo04.name = "旺财";
//可以直接调用类的属性
System.out.println(Demo04.name);//结果为“旺财”
//给属性赋值后,是永久改变的,当创建其他对象后,其属性也会变为该值
Demo04 demo04 = new Demo04();
System.out.println(demo04.name);//结果为“旺财”
Demo04 demo041 = new Demo04();
//改变一个对象的属性,也会同时改变其他对象的属性
//意味着这个属性是所有对象公有的
demo041.name = "旺仔";
System.out.println(demo041.name);
System.out.println(demo04.name);
System.out.println(Demo04.name);
//三个结果都是“旺仔”
}
}