Java基础-面向对象基础2

2023-01-11 0 537

1. 核心成员表达式和返回值的差别

核心成员表达式:表述在类中,方式外!返回值:表述在方式的外部或是return下面!public class Demo01{int number = 10; // 它是两个核心成员表达式public static int getSum(int a,int b){ // a和b她们都是返回值int sum = a + b; // sum它是两个返回值return sum;}}
1. 代码的边线相同 ★★★★★核心成员表达式 : 类中方式外返回值 : 方式中, 或是是方式的新闻稿上(实参)
2. 调用值相同:★★★★★ 核心成员表达式 : 有预设调用值返回值 : 没预设调用值, 采用以后要顺利完成表达式就可以采用.public void method(){int i;System.out.println(i); // i是两个返回值,没预设值,下面又没调用,这行标识符校对收起}
3. 在缓存中的边线:核心成员表达式:在堆缓存中!有预设初始值!返回值:在栈缓存中!
4. 生命周期:核心成员表达式:随着对象的创建而存在, 随着对象的消失而消失返回值:随着方式的调用而存在,随着方式调用结束而消失
5. 作用范围:★★★★★核心成员表达式:在整个类中!返回值:在当前的方式中,某个标识符块中!public static void main(String[] args){for(int i = 1; i <= 10; i++){ // 表达式i仅在当前的{}中有效!System.out.println(i);}System.out.println(i); // 出现校对错误.}

2. private关键字的概述和特点

private权限修饰符可以修饰什么?被其修饰的(核心成员)有什么特点?

1. private关键字可以修饰核心成员表达式和核心成员方式!2. 只要被private修饰的缓存,只能在本类中采用!我们采用private关键字修饰核心成员表达式,主要是考虑到程序的安全性!1. 普通类: public class Person {// 核心成员表达式(姓名)String name;// 核心成员表达式(年龄)int age;// 核心成员方式public void sayHello(){ // 打招呼System.out.println(“Hello,老铁!”);}} 2. 测试类:public class Main {public static void main(String[] args) {// 创建Person类的对象Person person = new Person();// 为person对象的属性表达式person.name = “童家庆”;person.age = -128;System.out.println(“姓名:” + person.name + “, 年龄:”+ person.age);}}针对下面的标识符,我们发现给两个人的年龄表达式两个负数,明显不合适!!!!如何处理呢?我们可以采用关键字private对象年龄 age 进行修饰!public class Person {// 核心成员表达式(姓名)String name;// 核心成员表达式(年龄)private int age;}一旦采用private对age进行修饰,那么这个表达式age就只能在本类 Person中采用!外界就无法访问它了public class Main {public static void main(String[] args) {// 创建Person类的对象Person person = new Person();// 为person对象的属性表达式// person.age = -128; // 就不能操作了,它被private修饰了,校对收起了!}}我们肯定是要为age属性表达式的!怎么做呢? 我们可以在Person中表述方式而且,还针对age属性值进行了特殊处理!【加了判断,让这个属性的值更加安全可靠!】public class Person {// 核心成员表达式(姓名)String name;// 核心成员表达式(年龄)private int age;// 单独提供方式为age属性表达式public void xy(int number){// 检查数据是否合法if(number >0 && number <=120){age = number;}else{System.out.println(“你丫的,设置的年龄不合法!”);}}public int yz(){return age;}}那么,后面我们就可以同方式来访问age属性了!public class Main {public static void main(String[] args) {// 创建Person类的对象Person person = new Person();// 为person对象的属性表达式person.name = “xxx”;// 为person的age属性赋值person.xy(28);// 通过方式获得age属性的值System.out.println(“姓名:” + person.name + “, 年龄:”+ person.yz());}}★★★★★在为被private修饰的核心成员表达式表达式的方式: set属性名称(类型 表达式名称) 例如:setAge(int a); // 属性名对应的单词的首字母要大写!例如:getAge(); // 属性名对应的单词的首字母要大写!那么以后的标识符可以进行改造:public class Person {// 核心成员表达式(姓名)String name;// 核心成员表达式(年龄)private int age;// 单独提供方式为age属性表达式public void setAge(int a){// 检查数据是否合法if(a >0 && a <=120){age = a;}else{System.out.println(“你丫的,设置的年龄不合法!”);}}/public int getAge(){return age;}}

3. private修饰后的[标准类]标识符

练习:类的表述:手机类 属性:核心成员表达式 品牌 brand 价格 price 要求:为属性 brand 和 price 提供 set和get方式! 在测试类中 通过set方式为属性表达式,通过get方式获得属性的值。

publicclassPhone {// 成员表达式privateStringbrand; // 品牌privateintprice; // 价格// 提供set方式(表达式)publicvoidsetBrand(Stringname){ // 谁调用这个set方式,会就传递两个品牌的名称brand=name; }publicStringgetBrand(){returnbrand; }publicvoidsetPrice(intp){price=p; }publicintgetPrice(){returnprice; }}
publicclassMain {publicstaticvoidmain(String[] args) {// 创建Phone类的对象Phonephone=newPhone();phone.setBrand(“华为”);System.out.println(phone.getBrand());phone.setPrice(8888);intprice=phone.getPrice();System.out.println(price); }}

4. this关键字的概述和采用

什么是this关键字?this关键字的作用是什么?

一般,我们在被private修饰的核心成员表达式提供的set方式书写标识符的时候,return的表达式名称会写成与核心成员表达式名称一致!// 核心成员表达式private String brand; // 品牌// 提供set方式(表达式)public void setBrand(String brand){ // 谁调用这个set方式,会就传递两个品牌的名称// 核心成员表达式与返回值重名了! 局部变量会隐藏核心成员表达式//brand = brand; // 左侧和右侧的brand都是返回值this.brand = brand; // 左侧的是核心成员表达式,右侧的是返回值}
1. this: 代表当本类的两个实例对象,谁调用这个方式,那么这个方式中的this就代表谁!对象的引用 : 对象的地址值.手机类:public class Phone {// 核心成员表达式private String brand; // 品牌public void setBrand(String brand){ // 谁调用这个set方式,会就传递两个品牌的名称this.brand = brand; // 左侧的是核心成员表达式,右侧的是返回值System.out.println(this);}}测试类:public class Main {public static void main(String[] args) {// 创建Phone类的对象Phone phone = new Phone();System.out.println(phone); // com.xxx.demo05.Phone@4554617cphone.setBrand(“华为”); // 在setBrand方式中,this此时代表的就是phone【我们会发现,在打印this的时候,它的值是:com.xxx.demo05.Phone@4554617c】Phone phone1 = new Phone();System.out.println(phone1); // com.xxx.demo05.Phone@74a14482phone1.setBrand(“小米”); // 在setBrand方式中,this此时代表的就是phone1【我们会发现,在打印this的时候,它的值是:com.xxx.demo05.Phone@74a14482】}}
2. 用来区分返回值, 和核心成员表达式的重名问题 以后在类中,采用this访问的表达式是核心成员表达式!!!!

this缓存原理:

this:方式被谁调用,那么这个方式中的this就代表谁! ★★★★★

5. 封装的概述和好处

概述下什么是封装? 封装的好处又是什么?

封装它是一种思想,它是程序语言的三大特征(封装、继承、多态)之一!将两个功能的具体实现给隐藏了,我们只关注有什么功能,在java中,封装经常体现在方式下面!这样一来,这样写的标识符安全性就有保障了!【可以将一些校验和检测的标识符写到方式中去】除此之外,采用封装,能够提高标识符的复用性!

6. 构造方式的概述和采用

什么是构造方式? 构造方式的格式为? 构造方式可以有return语句吗?

1. 构造方式它是一种特殊的方式!主要用于创建对象(为对象中的属性进行表达式)2. 格式:public 类名(){ // 无参构造方式!}3. 可以有,但是不能给值!public 类名(){ // 无参构造方式! 【void都不能写】return ;}
问题: 构造方式在什么时候被调用? 能不能手动调用?构造方式都是在我们书写标识符通过new时候就被调用了!不能通过手动去调用构造方式:比如,student.Student();// 错误的! 【构造方式是系统负责调用】
问题: 构造方式的作用是什么?创建对象,采用有参构造,还可以为核心成员表达式表达式!
总结 : 用于给对象中的数据[属性]进行调用的.【有参构造才行!】

7. 构造方式的注意事项

构造方式注意事项? 构造方式能够重载吗? 给核心成员表达式的两种调用方式有什么差别?

构造方式注意事项:1.在没给出任何构造方式的时候,系统自动免费赠送两个无参构造方式!2.一旦我们提供了两个有参构造方式,那么系统将不会赠送那个无参构造方式!
构造方式可以重载!重载的有参构造方式,除了创建对象以外,还可以为核心成员表达式表达式!
1. 通过setter方式为核心成员表达式表达式这是我们推荐采用的!【在就业班我们会学习框架spring,底层都是通过setter方式来顺利完成的!】2. 通过有参构造为核心成员表达式表达式可以采用,但是不怎么推荐!结论:以后不管你采用什么样的构造方式,请手动提供两个无参构造方式!
Java基础-面向对象基础2
举报/反馈

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务