A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 混世魔王 初级黑马   /  2017-12-27 17:47  /  816 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一到六天学习的还算顺利,感觉还好!但从第七天后:
.面向对象初识
面向过程强调的是功能行为,面向对象是相对面对过程而言的,面向对象将功能封装成对象,强调具备了功能的对象。面向过程和面向对象都是一种编程思想。
万物皆对象,凡是真实存在的个体都是对象
        (1)分析该系统中包含哪些对象
        (2)明确每个对象可以做什么
        (3)明确各个对象之间的关系
面向对象的特征——继承、封装 、多态
以后的开发过程就是找对象来用,没有对象,就创建一个对象。
找对象,建立对象,使用对象,并维护对象的关系。
类和对象的关系:
类:就是对现实生活中事物的描述,是属性和行为的集合,可以理解为一张图纸,是 一个抽象的概念
  
对象:就是这类事物,实实在在存在的个体。

想要描述:提取对象中共性内容。对具体的抽象。

映射到Java中描述就是class定义的类。类中属性即成员变量,行为即成员函数,定义类就是定义类的成员(成员变量+成员函数)
具体对象就是对应Java在堆内存中用new建立实体。
格式:        类名 对象名=new 类名();
成员变量:对象名.成员变量;
成员方法:对象名.成员方法();
成员变量和局部变量的区别
定义位置的区别:成员变量定义在类中,方法外;局部变量定义在方法中,或者是方法的形参
初始化值的问题:成员变量有默认初始化值;局部变量没有默认初始化值,必须定义后赋值才能使用。在使用变量的时候,首先在局部范围找,没有的话在成员变量找,
在使用过程中,遵循一个就近原则存储位置的区别:成员变量定义在堆中,随着对象的存在而存在,随着对象的消失而消失;局部变量存储在栈中,随着方法的调用而
存在,随着方法调用完毕而消失
匿名对象
         匿名对象是对象的一种简化方式
         格式:new 类名()
         调用:new 类名(). 成员名称;
         使用情况:1.只使用一次的时候;2.作为实参传递给方法;
2.封装
是指把不需要让外界知道的信息隐藏起来,尽可能隐藏对象的字段和实现细节,仅对外提供公共访问方式。

优点:将变化隔离,便于使用,提高重用性和安全性

封装机制在程序中的体现是:把描述对象的状态用字段表示,描述对象的行为用方法表示,把字段和方法定义在一个类中,并保证外界不能任意更改其内部的字段值,
也不允许任意调动其内部的功能方法。
访问权限修饰符
private 类访问权限:本类内部可以访问,不能继承到子类;
default 什么都不写,包访问权限:本类内部可以访问,同包其他类也可以访问,同包可继承;
protected 子类访问权限:本类内部可以访问,不同包的子类也可以访问,同包其他类也可以访问,能继承到子类;
public 公共访问权限:任何地方都可以访问,能继承到子类;
.this关键字
this代表其所在函数所属对象的引用。换言之,this就代表本类对象的引用。谁调用,this就代表谁。每一个成员方法里面都有一个this代表当前对象。
什么时候用this:1.当函数内部需要用到调用该函数的对象时,如this.name=name;
2.构造方法中相互调用,但是此时this([参数])必须写在构造方法第一行。
this不能用在static修饰的方法里和static修饰的代码块里;
以及后面的String方法调用完全不会用;太抽象。每天课程又这么多,有点吃力!
package com.itheima;

public class Student {
        private String name;
        private int age;
        public Student(){
               
        }
        public Student(String name){
                this.name=name;
        }
        public Student(int age){
                this.age=age;
        }
        public Student(String name,int age){
                this.name=name;
                this.age=age;
        }
        public void show(){
                System.out.println("学习使我快乐");
                System.out.println(age);
        }

}
特别是构造方法调用,和面向对象关系真的搞不懂!
还需继续努力!

1 个回复

倒序浏览
我来占层楼啊   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马