JAVA基础必备(八)——面向对象

面向对象(描述现实生活)

  把具有相同属性和相似行为的事物抽象出来
  相同属性:可以用变量来表示
    找出相同属性的过程称为数据抽象
  相似行为:可以用函数(方法)来表示
    找出相似行为的过程称为过程抽象
封装
  把相似的行为和相同的属性组装到一起
  构成类的过程
class 类名
{
   相同的属性
   相似的行为
}
人类:相同的属性
     int age,double h,w;String name
     相似的行为
     eat()   walk()  talk()等
     现在的函数不用在加public static
属性和行为都是类的成员
其中属性是成员变量,行为是成员函数
它们的位置是并列的
就现在而言类中只能放属性(变量)和行为(函数)


钟类:
   属性:  int h,m,s
   行为:  showTime()   setTime()
对象
    类的实体
    如何创建实体呢
    类名 对象引用名 = new 类名();

属性和行为必须通过对象名.成员

属性:类的成员变量
行为:成员方法(成员函数)

成员变量有默认值  局部变量没有默认值

1.构造函数
   a.该函数是类的成员函数
   b.该函数没有任何返回类型,连void都没有
   c.该函数的函数名与类名相同
   d.就当前而言主要作用是给成员变量进行初始化的工作
   e.创建对象的时候构造函数会自动被调用(隐式调用)
     创建一个对象构造函数就会被调用一次
   f.当一个类没有构造函数时,jvm会给加一个
     默认的构造函数如下
     public 类名(){}
     一旦我们声明了构造函数,这个默认的构造
     函数就不存在了.

 2.函数重载
   a.同一个类中的一组函数
   b.该组函数的函数名称相同
   c.形式参数不同(类型,个数,个数类型)
   d.与返回值类型无关
   e.调用的时候会根据参数的类型和个数
     自动匹配决定调用哪个函数
     这种匹配是不精确的,遵循就近原则
     (找最精确的匹配,如果没有最精确
     ,找能够接受匹配的但是不需要人为去转换)
 3.构造函数的重载

4.this引用 (看案例先看P7再看P6)
  a.什么是this
  当前对象的引用(调用这个函数的那个对象的引用)
  b.什么时候可以用
  当一个普通的(非静态的)成员函数访问
  普通(非静态的)的成员,前面都省略了this
  c.this(参数)
    调用重载构造函数中的另外一个,哪个需要
    根据参数去匹配
    this(参数)的调用必须放在构造函数的第一个语句
  d.以后还会见到 类名.this 内部类的时候讲解

成员变量---->是类的属性,有默认值
局部变量---->函数中定义的,没有默认值
             要想使用必须初始化

普通类型的变量---->标识一块内存
引用类型的变量---->指向一体对象
类当作自定义的数据类型,都是引用类型个堆内存中的实
当一个引用类型的变量作为成员时,有默认值了,是null代表没有
指向任何实例对象

引用类型的变量一个赋值另一个,就让这
两个变量指向了同一个实体对象

JAVA中的内存分配有两种
1.栈  --->先进后出(后来者居上)--->用完自动释放
2.堆  ---->随机分配--->JVM回收空间

1.初始化(给类的属性)
  a.构造函数
  b.定义初始化---->给成员变量直接赋值
    创建对象时,先执行初始化块,如果
    多个从上到下依次 然后轮到构造函数

2.静态成员
  a.静态成员变量
    i.用static 关键字声明  所有实例对象共用同一个
    ii.可以通过类名.静态属性名,直接访问静态属性
      也可以通过对象名.静态属性名(不提倡)
    iii.静态的属性不属于对象而属于类
    
  b.静态属性的初始化
    直接给静态属性赋值也称为定义初始化,静态定义初始化
    i.初始化顺序  先静态初始化,后定义初始化,后构造函数
      静态的只加载一次.
      静态的属性是在创建对象时加载吗?不是,而是用到类就加载

2.静态成员(static)
  a.静态成员变量
    i.用static 关键字声明  所有实例对象共用同一个
    ii.可以通过类名.静态属性名,直接访问静态属性
      也可以通过对象名.静态属性名(不提倡)
    iii.静态的属性不属于对象而属于类
    
  b.静态属性的初始化
    直接给静态属性赋值也称为定义初始化,静态定义初始化
    i.初始化顺序  先静态初始化,后定义初始化,后构造函数
      静态的只加载一次.
      静态的属性一定是在创建对象时加载吗?不是,而是用到类就加载
  c.静态的成员方法
    i.方法也可以声明成静态的
      这个方法可以用类名.直接访问 也可以用对象.访问(不提倡)
      Arrays.toString()
      Integer.toBinaryString()等等
    ii.静态的成员函数只能访问静态的成员
       静态的属性前面不能使用this

       this 非静态的成员函数访问非静态成员时,都省略了this



3.访问权限(类,成员)
   a.包 package 是类名的一部分
     之前的类都没有写包都在默认包中
     javac -d . PackageTest1.java 自动产生包在当前目录下
     java aa.bb.PackageTest1  运行时必须是类的全名
   b.classpath环境变量 寻找.class文件的路径默认是.代表当前目录
   c.访问权限

     public 修饰类类就可以在不同包下访问
     public 修饰成员 ,那么就可以在不同包进行访问
     成员,类想在不同包下进行访问必须声明为public

4.javaBean  普通的java类就可以称为javaBean
  标准的javaBean
     a.类一定在包里面并且是public
     b.属性为private,对所有属性都有get/set方法
     c.有无参数的构造函数


5.eclipse 绿色的  免费
  eclipse不带有jdk--->请先安装jdk
  file--new--->project---JavaProject-->填写项目名(不要中文)
  一个类应该写在一个文件中,类最后放在包中.
  右击(src)项目名--->new--->package
  包名上右击--->new--->Class--->填写类名


  快捷键  alt+/ 自能提示
           main alt+/
       syso alt+/
  运行:  右击--->Run as--->JavaApplication

  写代码时如果要想自动生产构造函数 get/set方法
  等等 光标位置右击代码--->source


继承(代码的重用)
is-a
extends关键字

eclipse导入项目
  File--->import---->General--->Existing project into workspace-->browse--->选择项目--->确定-->finish

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值