Java中封装、关键字及构造方法
1、封装
a:隐藏实现细节,提供公共的访问方式。
b:好处,隐藏实现细节,提供公共的访问方式。提高代码的复用性。提高代码的安全性。
c:设计原则,把不想让外界知道的实现细节给隐藏起来,提供公共的访问方式。
d:private是封装的一种体现。封装包括,类,方法,private修饰成员变量。
2、private关键字
私有的意义,可以修饰成员和成员方法。特点,被private修饰后的成员只能在本类中访问。
this关键字
a:代表当前的引用对象,哪个对象调用方法,该方法内部的this就是代表哪个对象。
b:this的应用场景,解决了局部变量隐藏成员变量的问题。
3、构造方法
a:作用,用于对象的数据进行初始化。
b:格式,方法名和类名相同。没有返回值类型,连void都没有。没有返回值。
c:如果我们没有写构造方法,系统会自动给一个无参构造方法,如果我们给出了构造方法,系统将不会给。
例如:
//学生类构造方法
class Student {private String name;private int age;//无参构造方法public Student() {}//有参构造方法//用构造方法给成员变量赋值public Student(String name,int age) {this.name=name;this.age=age;}//用set方法给成员变量赋值(常用)public void setName(String name) {this.name=name;}public String getName() {return name;}public void setAge(int age) {this.age=age;}public int getAge() {return age;}//输出成员变量public void show() {System.out.println(name+"---"+age);}
}public class Main {public static void main(String[] args) {//方式1用无参构造方法+setStudent s1=new Student();s1.setName("贺志营");s1.setAge(20);System.out.println(s1.getName()+"---"+s1.getAge());//常用s1.show();System.out.println("-----------");//方式2Student s2=new Student("贺志营",20);System.out.println(s2.getName()+"---"+s2.getAge());//常用s2.show();}
}
4、static关键字
a:静态的意思,可以修饰成员变量和成员方法。在静态方法区没有this对象,静态只能访问静态。
b:静态的特点,随着类的加载而加载。优先于对象的存在。被类的所有对象共享。
举例:
class Person{String name;int age;static String country;public Person() {}public Person(String name,int age) {this.name=name;this.age=age;}public Person(String name,int age,String country) {this.name=name;this.age=age;this.country=country;}public void show() {System.out.println(name+"---"+age+"---"+country);}
}
public class Main {public static void main(String[] args) {Person p1,p2,p3;p1=new Person("贺志营",20,"中国");p2=new Person("贺贺",19);p3=new Person("阿营",18);p1.show();p2.show();p3.show();}
}
c:可以通过类调用,既可以通过对象名调用,也可以通过类名调用,建议通过类名调用。
d:静态变量和成员变量的区别
静态变量属于类,类变量。成员变量,属于对象,对象变量,实例变量。
生命周期不同,静态变量是随着类的加载而加载,随着类的消失而消失。成员变量是随着对象的创建而存在,随着对象的消失而消失。
调用不同,可以通过对象名调用也可以通过类名调用。成员变量只能通过对象名调用。
举例:
class Student{private Student(){}//创建私有方法,这样就只能用类名访问了public static void eat() {System.out.println("吃");}
}
public class Main {public static void main(String[] args) {//Student s=new Student();这个会报错Student.eat();}
}
e:main方法是静态的,public权限最大,static不用创建对象就能调用,void返回值给jvm没有意义,main就是一个常见的名称。String[] agrs可以接收数据,提供程序的灵活性,没用过。
Java中封装、关键字及构造方法相关推荐
- Java中super关键字调用构造方法小结
1.子类中所有的构造方法默认都会访问父类中的无参构造方法. 2.子类会继承父类中的数据,还可能回去使用父类的数据.所以子类初始化之前,会先完成父类的初始化,即先访问父类中的无参构造方法. 3.在子类中 ...
- java构造方法中this_Java中this关键字在构造方法中的使用
1. Java中this关键字代表对象本身.用this关键字可以在类的内部调用属性和方法,这样代码的可读性比较高,因为它明确的指出了这个属性或方法的来源. 2. 同时在构造函数中也可以使用this关键 ...
- Java中super关键字及super()的使用
Java中super关键字及super()的使用: 1.super的使用: (1)super是一个关键字. (2)super和this很类似,我们对比着学习. 2.先复习一下this关键字的使用. ( ...
- java中final关键字的使用
final 中文翻译为 最终的,在java中也是较为常用的关键字之一. 在java 中 final 关键字可以修饰 类.方法.变量 final 修饰在类上,则表示该类不能被继承,如果里面的成员变量没 ...
- java中的关键字static
原文链接: https://zhuanlan.zhihu.com/p/70110497 昨晚面试中被问到,没能回答出来.这篇答疑文章写得非常好,无一字可增删,遂直接复制. 在平时开发当中,我们经常会遇 ...
- [转载] Java中的关键字含义以及介绍
参考链接: C++和Java中static关键字的比较 Java关键字是有特别意义的标识符.用来表示一种数据类型,或者表示程序的结构等. Java关键字不能用作变量名.方法名.类名.包名和参数. 以下 ...
- ACAC java中final关键字
java中final关键字/*1.final关键字:java 中的一个关键字,最终的,不可变的可以修饰变量以及方法,还有类等.1.修饰的方法,修饰的类无法被覆盖,无法被重写,无法被继承写的方法不希望被 ...
- Java中super关键字详解
Java中super关键字详解 super有什么用? super什么时候不可以省略呢? super在内存图中是如何存在的呢? super使用时的注意事项 super有什么用? (1)当子类中构造方法第 ...
- Java中super关键字及其作用
Java中super关键字及其作用 super关键字及其作用 A:super关键字指代父类对象引用(super代表父类存储空间的标识) B:作用: a:访问被子类隐藏的父类同名成员变量和成员方法 : ...
- 【Java_基础】Java中Native关键字的作用
本篇博文转载与:Java中Native关键字的作用 转载于:https://www.cnblogs.com/leiblog/p/10529056.html
最新文章
- Python之父发文,将重构现有核心解析器
- 如何重新打开Windows防火墙提示?
- 虚拟专题:知识图谱 | 基于网络防御知识图谱的0day攻击路径预测方法
- you just 飞鸽传书2007绿色版 ever day for two years
- 无线AP与无线路由器都有些什么区别?(一)
- lvcreate 创建逻辑卷
- cecore.cls.php 08cms,动态分析小示例| 08CMS SQL 注入分析
- silvaco 学习笔记 2——自定义材料
- linux遇到hint:num lock on
- Day001-2021-07-29 变量定义/数据类型/基础运算 判断/循环/数组
- Reached heap limit Allocation failed - JavaScript heap out of memory
- 合理利用“泛在式” - 手机促使人群分化
- Python实验,用pygame做飞机大战游戏设计
- WinUSB安装以及与Linux通讯
- 6.27 目前技术学习视野
- 字幕滚动效果---非常酷哦
- Android---使用adb命令添加apk到MUMU安卓模拟器
- 机器学习模型评估与改进:网格化调参(grid search)
- [译] WWDC 2018:关于iOS 12、iPad Pro、新MacBook及更多产品的所有预测
- 【LTE】LTE轻松进阶学习笔记-接口协议(4)