A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 猫哥走过的岁月 中级黑马   /  2016-4-20 00:16  /  417 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一,跟封装相关的知识点(重点)
1.构造方法
  作用:
   给对象的成员变量(属性)进行初始化
  格式特点:
   public Student() {
   }
   a.方法名与类名相同(大小也要与类名一致)
   b.没有返回值类型,连void都没有
   c.没有具体的返回值,可以加return;但是一般不加
   d.在创建对象的时候,系统会帮我们调用构造方法.构造方法不能使用对象调用
  构造方法重载:
   public Student() {
   }
   public Student(String name,int age) {
   }
   重载:
    方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表
   注意事项:
    a.如果我们没有给出构造方法,系统会自动提供一个无参构造方法.
    b.如果我们给出了构造方法,系统将不再提供默认的无参构造方法.
    c.建议永远自己给出无参构造方法.eclipse可以一键生成.
2.构造方法和setXxx()方法区别
  a.构造方法是给对象中属性进行初始化
  b.setXxx()方法是修改属性值
  c.使用构造方法,属性太多会非常臃肿,难以阅读(超过4个一般不推荐使用)
  d.使用setXxx()方法更灵活(想设置哪个就设置哪个),
  开发中更多得使用这种,也是主流(Spring框架采用).
3.创建一个对象的步骤
  Student s = new Student();
  a.Student.class加载进内存
  b.声明一个Student类型引用s
  c.new Student();在堆内存创建对象
  d.给对象中属性默认初始化值
  e.如果有显示初始化值,进行显示初始化
  f.构造方法进栈,对对象中的属性赋值,构造方法弹栈
  g.将对象的地址值赋值给Student类型引用s
4.static关键字
  static的作用:
   资源共享.
  什么时候使用static关键字?
   当一个内容,被该类下所有对象所共享的时候,咱们就能考虑使用static.
  特点:
   a.随着类的加载到方法区(不会随对象消失)
   b.优先于对象存在:随着字节码文件的加载而加载的,那时候还没有对象呢!
   c.被类的所有对象共享(最重要的特点)
    举例:
     咱们班级的学生应该共用同一个班级编号(静态)
     但是每位同学都有自己唯一的学号(非静态)
   d.可以通过类名调用,Person.country,不用创建对象(推荐)
  注意事项:
   a.在静态方法中是没有this关键字的
    (因为this指的是一个具体的对象,而静态在加载到内存时还没有具体的对象)
   b.静态方法只能(直接)访问静态的成员变量和静态的成员方法
   总结:
    静态只能直接访问静态
    静态方法如果想使用非静态的内容,必须先创建对象,再使用(了解,一般没人这么干)
   class Demo {
    int num1 = 10;   //非静态的成员变量
    static int num2 = 20;  //静态的成员变量
    public static void print2() {  //静态的成员方法
     //System.out.println(this.num1);  //静态方法不能直接访问非静态变量
     System.out.println(new Demo().num1);//通过创建对象间接访问非静态变量
     System.out.println(num2);
    }
   }
5.静态变量和成员变量的区别
  静态变量也叫类变量,成员变量也叫对象变量
  a.所属不同
   静态变量属于类,所以也称为为类变量
   成员变量属于对象,所以也称为实例变量(对象变量)
  b.内存中位置不同
   静态变量存储于方法区的静态区
   成员变量存储于堆内存
  c.内存出现时间不同(生命周期)
   静态变量随着类的加载而加载,随着类的消失而消失
   成员变量随着对象的创建而存在,随着对象的消失而消失
  d.调用不同
   静态变量可以通过类名调用,也可以通过对象调用
   成员变量只能通过对象名调用

二,如何使用及制作帮助文档(了解)
1.main方法格式详细解释
  public : 被jvm调用,所以权限要足够大.
  static : 被jvm调用,不需要创建对象,直接类名.调用即可
  void : 被jvm调用,不需要有任何的返回值
  main : 只有这样写才能被jvm识别,main不是关键字
  String[] args : 以前是用来接收键盘录入的 ,args是唯一可以修改的
  
2.工具类中使用静态
  如果一个类中的方法都是静态的,需要自己写一个私有的构造方法.防止他人创建对象.
3.说明书的制作过程
   javadoc -d 指定的文件目录 -author -version ArrayTool.java
  @author(提取作者内容)
  @version(提取版本内容)
  @param 参数名称//形式参数的变量名称
  @return 函数运行完返回的数据
3.Math类
  由于Math类在java.lang包下,所以不需要导包
  因为它的成员全部是静态的,所以私有了构造方法
  random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.0
  int number = (int)(Math.random()*100)+1
总结:
什么是封装?
  把一些数据和行为打包起来,使得类实现者可以修改封装内的东西而不影响外部调用者;
  而外部调用者也可以知道自己不可以碰哪里;这就提供一个良好的合作基础.
什么时候使用封装?
  封装易变动的部分,可以减少变动对整个系统带来的影响,
  并且可以有效地控制系统的复杂程度
  举例:之前学习的成绩优良及格差

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马