java stw_JAVA学习_随笔(三)

回顾

面向过程:自己做事情

变量、流程控制语句、方法、数组

面向对象:叫别人做事情

面向对象

社会(编程)发展的趋势:小工程(细节)自己处理,复杂的,大型的工程需要合作处理,叫别人帮忙

数据的存储和处理:原来只是存储数据,现在需要可以存储数据还可以对数据进行处理

类: 类是一类具体事物的抽象,模板(概念)

对象

对象:具体的根据某个类而实实在在存在的东西,这才是能够完成

代码中,现有类,才有对象

类的定义

因为需要有类才能够创建对象,定义一个类(模板)

class 类名{

}

class:定义类的关键字

类名:给类取的标识

{}:类的范围

类是用来存储多个不同类型数据以及提供操作。是将零散的局数据,包装成一个整体

int a = 12;

int[] arr = {};

class Person{

// 信息, 属性

// 姓名

String name;

// 年龄

int age;

// 性别

boolean gender;  // true 男,   false 女

// 身高

double height;

// 能力, 方法

// 吃饭   见名知意的名称, 返回值, 参数

public  void eat(){

System.out.println("人是铁饭是钢,一顿不吃饿得慌");

}

// 睡觉

public  void sleep(){

System.out.println("不睡看谁熬死谁");

}

// 吹牛皮

public  void say(){

System.out.println("饭可以乱吃,话不可以乱讲");

}

}

对象

对象是根据模板创建出来的实例

Person p1 = new Person();

1、类中预备好了空间可以存储数据,创建对象之后,真的有空间了,能存储数据了

2、每一个对象都有自己独立的空间,存储自己的属性,和别的对象没关系

3、对象所用的方法都是同一块代码,所以大家是共用的

类当中可以存在一个方法 String toString();这个方法是约定,我们都认识的,在使用println打印对象的时候,会自动调用这个方法

构造器 | 构造方法|构造函数

要创建对象,一定会走构造器。利用构造器的这个特点,我们可以通过构造器给对象赋初始值。

在每一个类中都存在至少一个特殊的方法,构造方法

1、形式

​ 方法名和类名一致 && 没有返回值

2、作用|调用时机

​ 构造方法会在new的时候(创建对象的时候)自动被系统调用

3、每一个类都有构造器

​ 如果没有手动给,系统会在编译的时候自动给一个空构造

​ 如果手动给了,系统将不再给

创建对象的过程

Person p1 = new Person();

1、根据类在堆当中开辟空间,并且使用默认值进行初始化(没给则使用每种类型的默认值, 如果给了,就是用我们给的默认值)

2、调用对应的构造器,初始化属性

3、返回开辟的堆空间的首地址

数据量类型

基本类型,简单类型:byte, short, int ,long ,float, double, char, boolean

引用类型,复杂类型,混合类型: 就是简单类型的组合

基本类型都只占用一块空间,带标签的空间,变量中存储的就是数据。

应用类型占用两块空间, 引用(变量)栈中占用一块空间,对象在堆中占用一块空间

Person p1 = new Person();

Person p2 = p1;

p1 引用, 存储的是堆中开辟的空间的首地址

new Person() 对象|实例, 存储在堆中的空间

引用指向对象

一个引用同一时刻只能指向一个对象。 一个对象可以同时被多个引用指向,任何应用对对象进行修改,其他引用均可见

方法和属性的使用

在有权限的前提下

方法调用

对象.方法名();

属性的访问方式

对象.属性名;

this关键字

1、当成员变量和局部变量(形式参数)同名的时候,通过this确定使用属性this.属性名

2、this代表当前对象。 只能出现在方法中,谁调用这个方法,this就是谁

3、this可以在构造器用来调用其他的构造器 this()

​ 必须在构造器中调用

​ 只能在第一行

​ 构造器之间的调用不能形成闭合的环

4、通过this调用其他方法 this.方法名()

statcic关键字

1、static修饰的内容(属性、方法)先于对象存在的,跟随类的存在而存在

2、

​ 属性 :非静态属性,每一个对象有自己的一份独有的。静态属性,所有对象共用一份

​ 方法:先于对象存在

非静态属性对象名.属性名, 非静态方法对象名.方法名()

静态属性:对象名.属性名, 类名.属性名;(推荐)

静态方法:对象名.方法名(), 类名.方法名();(推荐)

在静态方法中,不能使用非静态内容。非静态方法中可以使用静态内容

代码块{}

静态块:类中方法外,同时被static修饰;在类加载的时候执行一次。 一些只是在类加载的时候执行一次的代码,静态块中出现

普通块:方法内,没有关键字修饰; 方法调用的时候执行

构造块:类中方法外 , 没有关键字修饰;创建对象的时候执行,先于构造器执行; 每次创建对象都需要执行的操作

封装

使用者:方便使用

创造者(提供者):保护内部数据的安全

封装适度, 该露的露,该藏的藏

一般而言:属性私有化(藏起来), 方法公开(暴露出来)

权限修饰符,达到封装的效果

private, default, protected, public

类和类的关系:

自己, 同包, 子类(同包和不同包),不同包其他类

王健林, 老婆, 王思聪, 王XX, 你

钱,车,日记, 个人信息

JavaBean 就是普通的Java类

封装通过权限修饰符实现的, 合法的JavaBean应该满足以下的条件

1、属性私有化

2、按需提供设定器和访问器

3、必须有无参构造存在(手动提供)

4、按需提供其他构造器

设定器(设置属性的值,set + 属性名首字母大写)和访问器(获取属性的值 get+ 属性名首字母大写 ):就是一类方法,只是用来做固定用途的方法

如果属性的类型是boolean类型, is + 属性名首字母大写 作为访问器的名称

class

this : 当前对象, this.属性名, this(), this.方法名()

static : 静态的(先于对象存在, 属性【所有对象都共用一份属性】)

权限修饰符: private , default, protected, public

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值