zoukankan      html  css  js  c++  java
  • Java面向对象

    一.包名的推荐规范

      1.英文小写字母;2.域名的倒序

    二.面向对象

      优点:稳定性;可扩展性;可重用性

      对象:用来描述客观事物的一个实体;

      类:具有相同属性和方法的一组对象的集合

      1.一个简单的类例:

        属性和方法:(属性未赋初值,整型默认为0,字符串类型默认为null,double型为0.0)

        单一职责原则(单一功能原则):有且只有一个引起功能变化的原因【注:如果在一个类中,承担的功能越多,交融和耦合性越高,被复用的可能性越低,而且因为耦合性高,类中的一个职责发生变化时有可能引起其他职责变化】,因此在程序中尽量把不同的职责(引发变化的不同原因)封装在不同的类里面。

        如例:把与猫相关的属性和方法放在一个类,而把实例化测试放在另一个类里面

     1 package com.imooc.animals;
     2 
     3 public class Cat {
     4     //成员属性:昵称,年龄,体重,品种
     5     String name;
     6     int month;
     7     double weight;
     8     String species;
     9     //成员方法
    10     public void eat(){
    11         System.out.println("我吃东西了");
    12     }
    13     public void run(){
    14         System.out.println("我跑了");
    15     }
    16 }
    View Code
     1 package com.imooc.animals;
     2 
     3 public class Cattest {
     4 
     5     public static void main(String[] args) {
     6         // 对Cat实例化
     7         Cat cat=new Cat();
     8         //属性赋值,开始未赋值,默认为0
     9         //cat.month=12;
    10         //调用方法
    11         cat.eat();
    12         cat.run();
    13         System.out.println(cat.name);
    14         System.out.println(cat.month);
    15         System.out.println(cat.weight);
    16         System.out.println(cat.species);
    17         /*输出:
    18               我吃东西了 
    19             我跑了
    20             null
    21             0
    22             0.0
    23             null
    24          */
    25 
    26 
    27     }
    28 
    29 }
    View Code

      2.实例化对象过程:

        2.1声明对象:Cat cat(在内存的栈空间里开辟了一个区域取名为cat,此时为一个空盒子null,无法操作【未被初始化】)

        2.2实例化对象:new Cat()(在内存的堆空间里开辟了一块空间,完成了对象的初始化操作);

                还可以直接 Cat cat2=cat(相当于一个房子有两把钥匙,并给不同的人,指向的是内存中的同一区域)【如图2】

    图1

    图2

        注:Python实例化过程是先调用__new__(静态方法)方法实例化对象,并返回对象,在调用__init__(构造方法)完善对象,__init__无返回值。

       3.构造方法:

        1.构造方法与类名相同且没有返回值;

        2.只能在对象的实例化过程中被调用;

        3.当没有指定构造方法时,系统会自动添加无参构造方法;

        4.当有指定构造方法,无论是有参和无参,系统都不会自动添加构造方法;

        5.一个类可以有多个构造方法

        例1:无参构造方法

     1 package com.imooc.animals;
     2 
     3 public class Cat {
     4     //成员属性:昵称,年龄,体重,品种
     5     String name;
     6     int month;
     7     double weight;
     8     String species;
     9     //无参构造(默认是无参)
    10     public Cat(){
    11         
    12     }
    13     //成员方法
    14     public void eat(){
    15         System.out.println("我吃东西了");
    16     }
    17     public void run(){
    18         System.out.println("我跑了");
    19     }
    20 }
    View Code

         例2:有参构造方法

          注意:赋值满足就近原则

          解决方法:

            可以修改参数为不同的名字(缺点:麻烦,需要刻意取不同的名,对照麻烦);

            this关键字:表示当前对象

    注:可以定义一个与构造方法相同名的普通方法(语法没影响,但是不推荐)

                通过this()调用构造方法必须放在方法体内的第一行。

  • 相关阅读:
    【集合遍历-Java】
    【eclipse】使用说明
    【Java IO流】浅谈io,bio,nio,aio
    【Mysql数据库】知识点总结
    【struts2】学习笔记
    【EL&JSTL】学习笔记
    思科交换机-常用命令及配置
    【JDBC-MVC模式】开发实例
    【JDBC】java连接MySQL数据库步骤
    【JDBC】Servlet实例
  • 原文地址:https://www.cnblogs.com/lyq-biu/p/10672999.html
Copyright © 2011-2022 走看看