Day9

一、笔记:

封装:对属性进行操作  

对属性进行赋值的方式。

属性:成员变量

对成员变量的赋值:
1.默认赋值
2.直接赋值
3.构造器进行赋值
4.创建对象后直接调用属性进行赋值
5.使用方法的形式给属性进行赋值

封装(Encapsulation):

通常情况下,可以在测试类中给成员变量进行赋值,当给定的数值合法但不合理时,无论是编译还是运行阶段都不会报错或给出提示,此时与现实生活不符。

   为了避免上述问题的发生,就需要对成员变量进行密封包装处理该技术就封装,换句话说,封装就是一种保证成员变量值合理性的机制。

封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式

好处:

将变化隔离。

便于使用。

提高重用性。

提高安全性(健壮性)(提高数据的合理性)

封装原则:

将不需要对外提供的内容都隐藏起来。(将属性使用private进行修饰)

把属性都隐藏,提供公共方法对其访问。(提供getset方法)

 

使用权限修饰符,实现封装:

 

同一个类

同一个包

子类

所有类

private(私有)

T

 

 

 

default(默认)

T

T

 

 

protected(受保护)

T

T

T

T

public(公共的)

T

T

T

T

 

 

封装要点:

类的属性的处理:

  1.一般使用private.(除非本属性确定会让子类继承)

  2.提供相应的get/set方法来访问相关属性,这些方法通常是public,从而提供对属性的操作。

一些只用于给本类的辅助方法可以用private

希望其它类调用的方法用public

 static(静态)关键字:

static关键字:

用于修饰成员(成员变量和成员函数)

被修饰后的成员具备以下特点:

随着类的加载而加载  可以使用类名.进行调用

优先于对象存在

被所有对象所共享

可以直接被类名调用

使用注意

静态方法只能访问静态成员

可以直接使用类名调用

静态方法中不可以写this,super关键字

主函数是静态的

能不用则用,尽量少用

 匿名对象:

匿名:没有名字

匿名对象是对象的简化形式

匿名对象两种使用情况

当对对象方法仅进行一次调用的时

匿名对象可以作为实际参数进行传递

还可以做为返回值进行返回

对象和类的概念:

面向对象编程(OOP)的本质:

    --以类的方式组织代码,以对象的方式组织(封装)数据。

面向对象思维:OOA(analyze) OOD(design)

对象:是具体的事物

类:是对对象的抽象(抽象 提取出象的部分)

 

   类怎么设计的?

先有具体的对象,然后抽象各个对象之间象的部分,归纳为类。

通过类再认识其它对象。(人的思想是默认具备抽象的功能)

 

对象和类的总结:

对象和类的关系:特殊到一般,具体到抽象

类:我们叫做class

对象:我们叫做Objectinstance(实例).以后我们说某个类的对象,某个类的实例,是一个意思。

   创建对象=实例化对象

类可以看成是一类对象的模板,对象可以看成该类的一个具体实例。

类是用于描述同一类型的对象的一个抽象的概念,类中定义了这一类对象所应具有的静态的属性和动态的行为。

对象是java程序的核心。java中追求万事万物皆对象

JDK提供了很多类供编程人员使用,编程人员也可以定义自己的类。

的属性:

属性 field,或者叫成员变量

属性用于定义该类或者该类对象包含的数据或者说是静态属性

属性的作用范围是整个类体

属性定义的格式: 

修饰符  属性类型 属性名 = (默认值/初始值);

成员变量和局部变量的区别?

成员变量:

成员变量定义在类中,在整个类中都可以被访问。

成员变量随着对象的建立而建立,存在于对象所在的堆内存中。

成员变量有默认初始化值。

局部变量:

局部变量只定义在局部范围内,如:函数内,语句内等。

局部变量存在于栈内存中。

作用的范围结束,变量空间会自动释放。

局部变量没有默认初始化值。

类的方法:

面向对象中,整个程序的基本单位是类

属性代表静态的数据,方法代表动态的行为

方法定义的格式:

   修饰符   方法返回值类型  方法名(形参列表){

  //n条执行语句;

    return 返回值;

   }

Java中参数传递的方式:值传递!

 

内存分析:

栈:

存放:局部变量,对象的引用

堆:

存放new出来的对象

方法区:

存放类的信息(代码)、常量池等。

静态域:

static修饰的东西

引用类型:

Java中除了基本类型之外的变量类型都称之为引用类型

Java中的对象是通过引用对其操作的。

基本数据类型

基本数据类型的值是它类型范围内的一个具体数据

引用数据类型

引用数据类型的值是一个该类所对应的具体的对象

构造器:

构造器又称为构造方法

构造器用于构造该类的实例。创建对象

格式如下:

权限修饰符 类名(形参列表){

//n条语句

}

是一种特殊的方法:

通过new关键字调用。

构造器不需要返回值,连void也不要

如果我们没有定义构造器,则系统会默认提供一个无参数的构造器。如果自己定义了构造器,会将系统的默认构造器替换掉!

构造器的名字必须和类名一致!

作用:1、用来构造一个对象  2、对对象的属性进行初始化(给属性赋值)

2=在创建对象时,对属性进行赋值。

 

构造器又称为构造方法,所以构造器也具有方法的一些特性

在我们的方法中,有一个特性:overload(重载)

重载:同一个类中可以有多个同名的方法,只要他们的参数不同即可。(参数个数或者参数类型)

设计程序时,如果显性出一个或者多个带参的构造器,那么这时程序员应该习惯性的提供一个空参的构造器。

 this关键字:

特点:this代表其所在函数所属对象的引用。

换言之:this代本类对象的引用。

 

什么时候使用this关键字呢?

当在函数内需要用到调用该函数的对象时,就用this

 

二、老铁  做题吧

1.猜数字游戏:一个类A有一个成员变量v,有一个初值100。再定义一个类,为该类定义比较方法,对A类的成员变量v进行猜。如果大了则提示大了,小了则提示小了。等于则提示猜测成功。

package com.qfedu.zhuguangyi.opp;

public class A {
	int v=100;
	
}
package com.qfedu.zhuguangyi.opp;
public class TestA {
	public static void main(String[] args) {
		biJiao(50);
	}
	public static void biJiao(int b){
		A  a = new A();
		if(b>a.v){
			System.out.println("大了");
		}else if(b<a.v){
			System.out.println("小了");
		}else{
			System.out.println("成功");
		}
	}
		
}

 

别说不行,你都还没做怎么会知道?

该坚强就别懦弱下去!!!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值