Java基础(7)- Java代码笔记4

目录

一、面向对象

1.面向对象介绍

2.类的介绍和定义

3.对象的使用

4.匿名对象

5.面向对象内存图

a.一个对像内存图

b.两个对象内存图

c.两个对象指向同一片空间内存图

6.成员变量和局部变量的区别

7.MyDate类

二、封装

1.封装介绍

2.private关键字

3.get&set方法

4.this关键字

5.构造方法

a.无参构造

b.有参构造

6.标准JavaBean

7.快速生成JavaBean快捷键

8.JavaBean与数据库表

9.JavaBean参与查询过程


一、面向对象

1.面向对象介绍

代表语言举例:洗衣服
面向对象C语言自己事情自己干自己亲力亲为,找盆,放水...
面向过程Java语言别人帮忙干全自动洗衣机

面向对象优点:简化编写过程,减少代码量,只需要使用,不需要关心具体实现过程。

怎么使用面向对象思想编程:

a.new -> new完 . -> .代表是调用

b.特殊:如果调用的成员带static关键字,我们不需要new,直接类名.即可

2.类的介绍和定义

测试类:带main方法的类,主要运行代码

实体类:一类事物恶的抽象表示形式

组成部分

属性(成员变量)

a.定义位置:类中 方法外

b.作用范围:作用于当前类

c.定义格式:数据类型 变量名

d.默认值:整数:0 / 小数:0.0 / 字符:'\u0000' -> 对应int值为0 / 布尔:false / 引用:null

行为(成员方法)

只需把static去掉,其他与前面所学方法一样

3.对象的使用

a.导包:import 包名.类名

如果两个类在同一个包下,想要使用对方的成员不需要导包

如果两个类不在同一个包下,想要使用对方的成员需要导包

特殊包:java.lang -> 使用lang包下的类不需要导包 -> String

tip:学习四种权限修饰符前,尽量让两个类在同一个包下

b.创建对象

c.调用成员

4.匿名对象

常规对象类比变量

int i=10int:数据类型i:变量名等号右边的10:真正的数据
Person p=new Person()

等号左面的Person:

对象的类型

p:对象名

等号右边的new Person():

真正数据,是一个Person对象

匿名对象:没有等号左边部分,只有等号右边部分( new Xxxx().成员 )

注意:如果只单纯调用一个方法,让方法执行,可以考虑使用匿名对象,但如果涉及到赋值,千万不要使用匿名对象。

5.面向对象内存图

a.一个对像内存图

b.两个对象内存图

c.两个对象指向同一片空间内存图

6.成员变量和局部变量的区别

定义位置

重点

初始化值

重点

作用范围

重点

内存位置

了解

生命周期

了解

成员变量类中方法外

有默认值

不用手动赋值

可以直接用

作用于整个类

在堆中

跟着对象走

随对象的创建而产生

随对象消失而消失

局部变量

方法之中或

参数位置

无默认值

需要手动赋值才能用

只作用自己所在方法

其他方法无法使用

在栈中

跟着方法走

随着方法调用而产生

随着方法调用完毕而消失

7.MyDate类

MyDate类属于自定义类型(引用数据类型)

这种类型操作之前必须要赋值

即需要new‘对象赋值

MyDate birthday = new MyDate();

citizen.birthday.year = 2000 ;

二、封装

1.封装介绍

面向对象三大特征:[封装] 继承 多态

什么是封装思想:类比洗衣机,只需要知道按钮的作用,而不需要知道每个功能具体怎么实现,隐藏掉细节,只对外提供一个公共接口,提高系统的可扩展性,可维护性,安全性。

2.private关键字

问题:定义的成员变量,只要new新的对象,都可随便调用,不合理的调用也无法阻止

解决:将成员变量私有化,用 private 关键字修饰

修饰成员变量:private 数据类型 变量名

修饰方法:将public改成private,其他都一样

3.get&set方法

问题:属性被私有化了,外界直接调用不了,此时属性就不能直接赋值取值了,所以需要提供公共的接口get/set方法

set方法:为属性赋值

get方法:获取属性值

tips:可以在get/set方法里面加一些判断,用来验证数据是否合理。

private String name;
private int age;

public void setName(String xingMing){
    name = xingMing;
}
public String getName(){
    return name;
}

public void setAge(int nianLing){
    age = nianLing;
}
public int getAge(){

    return age;
}

4.this关键字

如果局部变量和成员变量重名时,默认“就近原则”,先访问局部变量。

this代表的是当前对象,区分重名的局部变量和成员变量

this点出来的一定时成员变量

//成员类
String name;

public void speak(String name){
    System.out.println(name+"您好我是"+name);
}

//主类
Person p = new Person();
person.name = "wang";
person.speak("li");

//输出
li你好我是li
//成员类
String name;

public void speak(String name){
    System.out.println(this.name+"您好我是"+name);
}

//主类
Person p = new Person();
person.name = "wang";
person.speak("li");

//输出
li你好我是wang

5.构造方法

构造方法:方法名和类名一致并且能初始化对象的方法,无返回值,void也没有

分类:无参构造/有参构造/满参构造

a.无参构造

格式:

public 类名(){

}

作用:new对象使用

特点:每个类中默认都有一个无参构造,不写也有,jvm会自动提供

使用:new对象就是在调用构造方法

b.有参构造

格式:

public 类名(形参){
    为属性赋值
}

作用:new对象/为属性赋值

特点:jvm不会自动提供有参构造,但是将有参构造手写出来,jvm将不再提供无参构造,所以建议有参,无参构造都手写上去。

6.标准JavaBean

JavaBean是Java语言编写 类 的一种标准规范,符合JavaBean的类要求:

a.类必须是具体的(非抽象abstract)和公共的,public class 类名

b.并且具有无参数的构造方法,有参构造

c.成员变量私有化,并提供用来操作成员变量的set和get方法

分包分层

controller -> 专门放和页面打交道的类(表现层)

service -> 专门放业务处理的类(业务层)

pojo -> 专门放javabean类

utils -> 专门放工具类

7.快速生成JavaBean快捷键

Alt+Insert

8.JavaBean与数据库表

9.JavaBean参与查询过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值