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中封装、关键字及构造方法相关推荐

  1. Java中super关键字调用构造方法小结

    1.子类中所有的构造方法默认都会访问父类中的无参构造方法. 2.子类会继承父类中的数据,还可能回去使用父类的数据.所以子类初始化之前,会先完成父类的初始化,即先访问父类中的无参构造方法. 3.在子类中 ...

  2. java构造方法中this_Java中this关键字在构造方法中的使用

    1. Java中this关键字代表对象本身.用this关键字可以在类的内部调用属性和方法,这样代码的可读性比较高,因为它明确的指出了这个属性或方法的来源. 2. 同时在构造函数中也可以使用this关键 ...

  3. Java中super关键字及super()的使用

    Java中super关键字及super()的使用: 1.super的使用: (1)super是一个关键字. (2)super和this很类似,我们对比着学习. 2.先复习一下this关键字的使用. ( ...

  4. java中final关键字的使用

    final 中文翻译为 最终的,在java中也是较为常用的关键字之一. 在java 中 final 关键字可以修饰  类.方法.变量 final 修饰在类上,则表示该类不能被继承,如果里面的成员变量没 ...

  5. java中的关键字static

    原文链接: https://zhuanlan.zhihu.com/p/70110497 昨晚面试中被问到,没能回答出来.这篇答疑文章写得非常好,无一字可增删,遂直接复制. 在平时开发当中,我们经常会遇 ...

  6. [转载] Java中的关键字含义以及介绍

    参考链接: C++和Java中static关键字的比较 Java关键字是有特别意义的标识符.用来表示一种数据类型,或者表示程序的结构等. Java关键字不能用作变量名.方法名.类名.包名和参数. 以下 ...

  7. ACAC java中final关键字

    java中final关键字/*1.final关键字:java 中的一个关键字,最终的,不可变的可以修饰变量以及方法,还有类等.1.修饰的方法,修饰的类无法被覆盖,无法被重写,无法被继承写的方法不希望被 ...

  8. Java中super关键字详解

    Java中super关键字详解 super有什么用? super什么时候不可以省略呢? super在内存图中是如何存在的呢? super使用时的注意事项 super有什么用? (1)当子类中构造方法第 ...

  9. Java中super关键字及其作用

    Java中super关键字及其作用 super关键字及其作用 A:super关键字指代父类对象引用(super代表父类存储空间的标识) B:作用: a:访问被子类隐藏的父类同名成员变量和成员方法 : ...

  10. 【Java_基础】Java中Native关键字的作用

    本篇博文转载与:Java中Native关键字的作用 转载于:https://www.cnblogs.com/leiblog/p/10529056.html

最新文章

  1. Python之父发文,将重构现有核心解析器
  2. 如何重新打开Windows防火墙提示?
  3. 虚拟专题:知识图谱 | 基于网络防御知识图谱的0day攻击路径预测方法
  4. you just 飞鸽传书2007绿色版 ever day for two years
  5. 无线AP与无线路由器都有些什么区别?(一)
  6. lvcreate 创建逻辑卷
  7. cecore.cls.php 08cms,动态分析小示例| 08CMS SQL 注入分析
  8. silvaco 学习笔记 2——自定义材料
  9. linux遇到hint:num lock on
  10. Day001-2021-07-29 变量定义/数据类型/基础运算 判断/循环/数组
  11. Reached heap limit Allocation failed - JavaScript heap out of memory
  12. 合理利用“泛在式” - 手机促使人群分化
  13. Python实验,用pygame做飞机大战游戏设计
  14. WinUSB安装以及与Linux通讯
  15. 6.27 目前技术学习视野
  16. 字幕滚动效果---非常酷哦
  17. Android---使用adb命令添加apk到MUMU安卓模拟器
  18. 机器学习模型评估与改进:网格化调参(grid search)
  19. [译] WWDC 2018:关于iOS 12、iPad Pro、新MacBook及更多产品的所有预测
  20. 【LTE】LTE轻松进阶学习笔记-接口协议(4)

热门文章

  1. Android数据存储:Shared Preferences
  2. [开源][J2ME]J2ME手机应用程序UI开发框架
  3. 【转】Go Micro(2)——微服务工具箱
  4. 使用记事本开发第一个java程序
  5. 豪情-2014年年终总结
  6. 老话题:自己编写只截窗口客户区的截屏软件(VB2010)
  7. 23个.net开源项目
  8. Selenium WebDriver API
  9. Spring MVC Formatter(数据格式化)详解
  10. 练习1.account表 添加一条记录