面向对象_封装

面向对象_封装

1、封装概述

1、概念
     是指隐藏对象的属性和实现细节,仅对外提供公共的访问方式(换句话说就是将属性私有化,并提供公有的方法访问)
2、private关键字
     可用于修饰成员内容,包括成员变量和成员方法
     被他修饰完毕后的内容,在其他类中是不能直接访问的,换句话说就是被private修饰的内容只能在本类中使用
3、注意
     private仅仅是封装的一种体现,因为类,函数等其实也是一个封装的体现
4、为什么要写getter/setter方法
     从思想上来说,因为属性私有化,只能在本类使用,其他类要想使用就需要提供get方法和set方法
     从需求上来讲,set和get方法 不一定必须出现,他俩是相互独立的
     而且set方法和get方法的名字可以随便起,只不过形成一个规范了,大家通过方法给私有属性赋值的时候,形成一个默认的规则,就是给属性赋值的方法以set开头,获取属性值的方法以get开头

2、构造方法

1、构造方法的特点
     A、方法名必须和类名保持一致
     B、没有返回值类型并且没有具体的返回值
2、构造方法的作用
      给对象进行属性初始化
3、注意事项
     A、如果没有明确给出构造方法,那么系统会默认给出一个无参构造方法
     B、只要明确给出构造方法,系统将不再提供无参构造(以后必须手动给出无参构造,因为可以避免很多错误发生
     C、构造方法的重载体现在参数列表不同
     D、构造方法的重载是构造方法的重载,方法的重载是方法的重载,两者没有关系,即使构造方法名和普通方法名一样,他们也不存在重载
4、给私有的成员变量赋值的方式
     A、通过set方法,推荐使用
     B、通过构造方法
     C、在定义成员变量的时候手动赋值
     D、通过反射中的Field类的对象给对象的属性赋值
5、一个类中构造方法应该定义几个?
     这个没有具体的规定,自己想写几个就写几个,看需求。可以一个都不写,系统会提供一个默认的,我一般都会定义一个无参构造,和一个有参构造,该有参构造初始化该类中的所有成员变量

3、构造方法和set方法区别
     构造方法是在创建对象的时候给成员变量赋值,并且只能赋值一次
     set方法是在创建完对象以后对成员变量的值进行修改,或者赋值,可以多次
     最终目的:都是给成员变量赋值,只不过实现方式不一样

4、this关键字

1、概念
     this代表其所在方法所属对象的引用,哪个对象调用方法,方法内部就有一个隐含的this代表这个对象(谁调用,this就代表谁)
    简单点说:谁调用,this代表谁
2、应用场景
     用于解决局部变量隐藏成员变量的问题
     简单点说:通过this关键字可以直接调用成员变量

5、代码块

1、概述
     由{}扩起来的代码称之为代码块,类或者方法也可认为是代码块,但是一般不这么说,我们平时所说的代码块指的是孤零零的{}
2、代码块作用
     局部代码块作用
     让变量尽可能早的从内存中消失,提高效率
     构造代码块作用是
     把所有构造方法中的共同的内容定义在构造代码块中,提高代码复用性,代码块优先于构造方法执行

6、对象初始化过程
class Person{
private String name = “haha”;
private int age = 10;
{
System.out.println(name + “***” + age);
name = “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需要提取的信息

10、Math类功能的使用

1、Math中的常量
E,PI
比任何其他值都更接近 e(即自然对数的底数)的 double 值。

2、Math中的方法
abs()绝对值
ceil 大于等于参数的最小整数,返回double
floor 小于等于参数的最大整数,返回double
round() 四舍五入 
random() 随机数
max(x,y) 获取两个数中的最大值

//求绝对值
pubilc static int abs(int num)
public long abs(long num)
public float abs(float num)
pbulic double abs(doble num)

//ceil:天花板
public static double ceil(double num)// 返回大于等于参数的最小整数  , 返回值是 double  类型
//floor  :底板
public static double floor(double num)// 返回小于等于参数的最大整数  , 返回值是 double  类型
//round  :四舍五入
public static int round(float num)//
public static long round(double num)// 四舍五入

//最大值
public static double max(double num1, double num2);
public static float max(float num1, float num2)
public static int max(int num1, int num2)
public static long max(long num1, long num2)

//随机数
public static double random();




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值