java三大特性之封装
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java三大特性之封装相关的知识,希望对你有一定的参考价值。
1.封装
封装概述:是指隐藏对象的属性和实现细节,仅仅对外提供公共访问方式。
好处:
隐藏实现细节,提供公共的访问方式
提高了代码的复用性
提高了安全性
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问。
2.private关键字
private关键字是一个权限修饰分,可以修饰成员变量和成员方法,被private修饰的成员变量或成员方法只能在本类中使用。
private最常见的应用:1.把成员变量用private修饰 2.提供对应的setter和getter方法。
/** * java三大特性是封装 */ class Student{ private int age; private String name; public void setAge(int age) { if(age <0 || age >120){ return; } this.age = age; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public String getName() { return name; } @Override public String toString() { return "Student{" + "age=" + age + ", name=‘" + name + ‘\‘‘ + ‘}‘; } } public class FengzhuangDemo { public static void main(String[] args){ Student stu = new Student(); stu.setAge(20); stu.setName("呵呵"); System.out.println(stu.toString()); } }
3.this关键字
this表示所在类的对象引用。
/** * 手机 */ class Phone{ private String brand;//品牌 private int price;//价格 private String color;//颜色 public void setBrand(String brand) { this.brand = brand; } public void setPrice(int price) { this.price = price; } public void setColor(String color) { this.color = color; } public String getBrand() { return brand; } public int getPrice() { return price; } public String getColor() { return color; } @Override public String toString() { return "Phone{" + "brand=‘" + brand + ‘\‘‘ + ", price=" + price + ", color=‘" + color + ‘\‘‘ + ‘}‘; } } public class PhoneTest { public static void main(String[] args){ Phone p = new Phone(); p.setBrand("苹果6"); p.setPrice(6000); p.setColor("白色"); System.out.println(p.toString()); } }
4.构造方法
构造方法作用概述:给对象的数据进行初始化。
构造方法格式:方法名与类名相同;没有返回值类型,连void都没有;没有具体的返回值。
构造方法注意事项:1.如果我们不提供构造方法,系统会给出默认的构造方法 2.如果我们提供了构造方法,那么系统将不会再提供默认的构造方法 3.构造方法也可以重载
/** * 手机 */ class Phone{ private String brand;//品牌 private int price;//价格 private String color;//颜色 public Phone() { } public Phone(String brand, int price, String color) { this.brand = brand; this.price = price; this.color = color; } public void setBrand(String brand) { this.brand = brand; } public void setPrice(int price) { this.price = price; } public void setColor(String color) { this.color = color; } public String getBrand() { return brand; } public int getPrice() { return price; } public String getColor() { return color; } @Override public String toString() { return "Phone{" + "brand=‘" + brand + ‘\‘‘ + ", price=" + price + ", color=‘" + color + ‘\‘‘ + ‘}‘; } } public class PhoneTest { public static void main(String[] args){ Phone p = new Phone(); p.setBrand("苹果6"); p.setPrice(6000); p.setColor("白色"); System.out.println(p.toString()); } }
5.static关键字
static关键字可以修饰成员变量和成员方法。
static关键字的特点:1.随着类的加载而加载 2.优先于对象存在 3.被类的所有对象共享
static关键字注意事项:1.在静态方法中不能有this关键字的 2.静态放阿飞只能访问静态的成员变量和静态的成员方法。
静态成员变量或静态成员方法位于方法区的静态区。
6.静态变量和成员变量的区别
所属不同
静态变量属于类,也成为类变量。
成员变量属于对象,所以也成为实例变量。
内存中位置不同
静态变量存储于方法区的静态区。
成员变量存储于堆内存。
内存出现时间不同
静态变量随着类的加载而加载,随着类的消失而消失。
成员变量随着对象的创建而存在,随着对象的消失而消失。
调用不同
静态变量可以通过类名调用,也可以通过对象调用。
成员变量只能通过对象名调用。
7.main方法格式详解
public static void main(String[] args){}
public:公共的,访问权限最大,由于main()方法需要被JVM调用,所以权限要足够大。
static: 静态的,不需要创建对象。通过类名,方便JVM调用。
void:因为方法的返回值时返回给调用者,而main()方法是被JVM调用,而main()方法返回内容是没有任何意义的。
main:是一个通用的名称,虽然不是关键字,但是被JVM所识别。
String[] args:以前用于接收键盘输入。
本文出自 “11831428” 博客,请务必保留此出处http://11841428.blog.51cto.com/11831428/1856325
以上是关于java三大特性之封装的主要内容,如果未能解决你的问题,请参考以下文章