1、封装概述(掌握)
1、概念(掌握)
是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式(换句话说就是将属性私有化,并提供共有的方法访问)
2、private关键字(理解)
可用于修饰成员内容,包括成员变量和成员方法
被他修饰完毕后的内容,在其他类中是不能直接访问的,换句话说就是被private修饰的内容只能在本类中使用
3、注意(掌握)
private仅仅是封装的一种体现,因为类,函数等其实也是一个封装的体现
4、为什么要写getter/setter方法(掌握)
从思想上来说,因为属性私有化,只能在本类使用,其他类要想使用就需要提供get方法和set方法
从需求上来讲,set和get方法 不一定必须出现,他俩是相互独立的
而且set方法和get方法的名字可以随便起,只不过形成一个规范了,大家通过方法给私有属性赋值的时候,形成一个默认的规则,就是给属性赋值的方法以set开头,获取属性值的方法以get开头
5、实例变量 和类变量
类变量也叫静态变量,也就是在变量前加了static 的变量;
实例变量也叫对象变量,即没加 static 的变量;
区别在于:
类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象
2、构造方法(掌握)
1、构造方法的特点(掌握)
A、方法名必须和类名保持一致
B、没有返回值类型并且没有具体的返回值
2、构造方法的作用(掌握)
给对象的属性初始化
3、注意事项(理解)
A、如果没有明确给出构造方法,那么系统会默认给出一个无参构造方法
B、只要明确给出构造方法,系统将不在提供无参构造(以后必须手动给出无参构造,因为可以避免很多错误发生
C、构造方法的重载体现在参数列表不同
D、(自己补充)构造方法的重载是构造方法的重载,方法的重载是方法的重载,两者没有关系,即使构造方法名和普通方法名一样,他们也不存在重载
4、给私有的成员变量赋值的方式(掌握)
A、通过set方法,推荐使用
B、通过构造方法
C、在定义成员变量的时候手动赋值(private String name = “yongliang”;)
//D、通过反射中的Field类的对象给对象的属性赋值(以后学)
5、一个类中构造方法应该定义几个?
这个没有具体的规定,自己想写几个就写几个,看需求。可以一个都不写,系统会提供一个默认的,我一般都会定义一个无参构造,和一个有参构造,该有参构造初始化该类中的所有成员变量
3、构造方法和setter方法区别(掌握)
1、区别
构造方法是在创建对象的时候给成员变量赋值,并且只能赋值一次
set方法是在创建完对象以后对成员变量的值进行修改,或者赋值,可以多次
最终目的:都是给成员变量赋值,只不过实现方式不一样
2、总结
爱用哪个用哪个
4、this关键字(掌握)
1、概念(理解)
this代表其所在方法所属对象的引用,哪个对象调用方法,方法内部就有一个隐含的this代表这个对象(谁调用,this就代表谁)(重点)
简单点说:谁调用,this代表谁
2、应用场景(作用)
用于解决局部变量隐藏成员变量的问题
简单点说:通过this关键字可以直接调用成员变量
5、封装/this之标准代码(掌握)
1、以后我们必须按照这样去写
2、有这样一个问题,有些同学说构造方法是给成员变量赋值的,set方法也是
给成员变量赋值的,到底用哪个?
首先他们都是给成员变量赋值的,但是构造方法是在初始化对象的时候赋值,并且只能给成员变量赋值一次。而set方法是在初始化完对象之后给对象赋值的,可以无限次调用赋值。
总结:想用哪个用哪个,看心情
6、代码块(掌握)
1、概述
由{}扩起来的代码称之为代码块,类或者方法也可认为是代码块,但是一般不这么说,我们平时所说的代码块指的是孤零零的{}
2、代码块作用
局部代码块作用
让变量尽可能早的从内存中消失,提高效率
构造代码块作用是
把所有构造方法中的共同的内容定义在构造代码块中,提高代码复用性,代码块先于构造方法执行,但是一般不用,最终目的初始化成员变量
工作中用的很少,主要应对面试
7、对象初始化过程(掌握)
class Person{
private String name = “haha”;
private int age = 10;
{
System.out.println(name + “***” + age);
naem = “hello”;
age = 20;
System.out.println(name + “***” + age);
}
//get… set…
}
Person p = new Person();
System.out.println(p.getName() + “***” + p.getAge());
A:把 Person.class文件加载到内存 (类加载器 )
B:在栈内存开辟一个变量空间,给 p使用
C: new Person()就会在对内存中开辟空间
D:方法进方法区,有类名做标记,并且,同时成员变量进堆内存并给出了默认初始化值
name:null
age:0
E:对成员变量进行显示初始化 (是因为定义成员变量的时候给赋值了 public int age = 34;)
name:hello
age:20
F:如果有构造代码块,可以在构造代码块中对成员变量赋值
name :world
age:30
H:到此为止,对象初始化完毕
I :把堆内存对象的首地址赋值给栈内存的 p变量
7、static关键字概述
1、概述
1、static 可以修饰成员变量和成员方法
2、被static修饰的成员有一个最大的特点,就是可以被该类下所有的对象共享
2、什么时候用
多个对象共享某一数据的时候,我们就把这个数据用static修饰.举例:小鸡吃食
3、特点(掌握)
1、被static修饰的内容随着类的加载而加载,优先于对象存在
2、可以直接通过类名调用
3、被该类下所有对象共享
4、注意事项
1、在静态方法中是没有this关键字,因为静态是随着类的加载而加载。而this是对象创建才存在的
2、静态方法只能访问静态成员变量和静态成员方法 一句话 静态只能访问静态
3、静态内容可以通过对象调用,也可以通过类名调用。推荐使用类名调用
8、不同JAVA文件中类的方法的调用(理解)
一个Java文件里面的类去调用另一个JAVA文件里面的类,编译的时候有两种方式,例如A类调用B类
第一种方式:先编译B类,在编译A类
第二种方式:直接编译A类,B类会自动编译
9、帮助文档制作(了解)
javadoc -d doc -author -version Demo.java
-d 文件目录 (这表示当前目录doc文件夹)
author –version需要提取的信息 |
|