zoukankan      html  css  js  c++  java
  • No1_7.类和对象_Java学习笔记

    一、面向对象的特点:
    a.封装:封装是面向对象的核心思想,将对象的属性和行为封装起来的载体就是类,类通常对客户隐藏其实现细节,这就是封装的思想;
      保证了类内部数据的完整性,应用该类的用户不能轻易直接操纵此数据结构,只能执行类允许公开的数据。
    b.继承:类与类之间有关系,叫做关联;继承是关联中的一种;
      继承性主要利用特定对象之间的共有属性。
    c.多态:将父类对象应用于子类的特征就是多态;“一个接口,多种实现”,就是同一种事物表现出的多种形态。
      多态的实现并不依赖具体类,而是依赖于抽象类和接口;
      在多态的机制中,比抽象类更为方便的方式是将抽象类定义为接口。
      多态存在的三个必要条件
      1、要有继承;
      2、要有重写;
      3、父类引用指向子类对象。

    二、接口:由抽象方法组成的集合就是接口;大家共同遵守的一个标准;

      1 import java.util.Scanner;
      2 
      3 public class HelloClassObject {
      4 
      5     public static void main(String[] args) {
      6         // TODO Auto-generated method stub
      7         System.out.println("学习类和对象!类~~~~~~");
      8         /*****************************
      9          * 一、类: 
     10          * 1.是封装对象的属性和行为的载体。 
     11          * 2.对象的属性以成员变量的形式存在,对象的行为以成员方法的形式存在。
     12          *
     13          * 二、构造方法:
     14          *  在类中除了成员方法外,还存在一种特殊类型的方法,构造方法。 
     15          * 1.与类同名;
     16          * 2.对象的创建就是通过构造方法完成的,实例化一个对象时,自动调用构造方法; 
     17          * 3.构造方法没有返回值;
     18          * 4.构造方法不需要void修饰;普通方法没有返回值用void修饰; 
     19          * 5.格式:public book(){}
     20          * 6.在构造方法中可以为成员变量赋值,实例化一个本类的对象时,相应的成员变量也被初始化;
     21          * 7.只有在类中没有定义任何构造方法时,编译器才会在该类中自动创建一个不带参数的构造方法。
     22          */
     23 
     24         /*****************************
     25          * 三、类的主方法: 
     26          * 1.主方法是类的入口点,定义了程序从何处开始;
     27          * 2.格式:
     28          *  public static void
     29          *     main(String[] args){} 
     30          * 3.特点: 
     31          * a.主方法是静态的。要直接在主方法中调用其它方法,则该方法必须也是静态的;
     32          * b.主方法没有返回值;
     33          * c.主方法的形参为数组;
     34          ***************** */
     35         for (int i = 0; i < args.length; i++) {
     36             System.out.println(args[i]);
     37             // Run -->Run Configurations --> Arguments 可设置参数
     38         }
     39 
     40         /****************
     41          * 四、成员变量: 1.对象的属性称为成员变量;
     42          * 
     43          * 五、成员方法: 
     44          * 1.类对象的行为。 
     45          * 2.权限修饰符 返回值类型 方法名(参数类型 参数名){方法体; 返回值;}
     46          * 3.一个成员方法可以有参数,参数可以是对象或变量;
     47          * 4.成员方法可以返回值和不返回任何值void;
     48          * 5.返回值与方法返回值的类型一致,return结束;
     49          *
     50          * 六、局部变量: 
     51          * 1.成员方法内定义的变量,是局部变量; 
     52          * 2.方法中的形参,也属于局部变量; 
     53          * 3.方法被执行时创建,执行结束时被销毁;
     54          * 4.局部变量在使用时,必须赋值,否则编译出错;
     55          *
     56          * 七、局部变量的有效范围: 
     57          * 1.局部变量的有效范围从该变量的声明开始到该变量的结束为止;
     58          * 2.相互不嵌套的作用域可以同时声明两个名称、类型相同的局部变量;
     59          *
     60          *
     61          * 八、静态变量、常量和方法 
     62          * 1.用static修饰的(变量、常量和方法)叫做静态成员;
     63          * 2.静态成员属于类所有的,可以在本类或其他类使用“类名.静态类成员”调用 ; 
     64          * 3.静态数据和静态方法通常是为了共享数据或方法;
     65          * 4.静态成员仍遵循publicprivateprotected修饰符约束; 
     66          * 5.静态方法中不可以使用this关键字;
     67          * 6.静态方法中不可以直接调用非静态方法; 
     68          * 7.不能将方法体内的局部变量声明为static;
     69          * 8.如果在执行类时,希望先执行类的初始化动作,可以使用static定义一个静态区域,优先执行,只执行一次; 
     70          * 例:public class
     71          * example{ static { //some } }
     72          */
     73         
     74         Book bk=new Book();
     75         // 调用类成员变量
     76         System.out.println("调用Book类的静态变量" + Book.PI);
     77         // 调用类方法
     78         bk.girl();
     79         //实例化对象
     80         String bookName=bk.getName();
     81         System.out.println("输出幸运数字和书名:"+bookName);
     82         
     83         
     84         /********************
     85         * 九、权限修饰符
     86         *1.包括private、public、protected
     87         *2.控制类、成员变量和成员方法;
     88         *3.private,只能在本类中使用,子类中不可见,其它包的类不可见;
     89         *4.public,可以本类中使用,子类中使用,其它包的类中使用;
     90         *5.protected,只有本包内该类的子类或其它类可访问;
     91         *6.子类和父类不在同一包中,只有public的类可以被子类进行访问;
     92         *7.父类不允许通过继承产生的子类访问其成员变量,用private;
     93         *8.声明类不使用权限修改符,则默认包存取范围;
     94         *9.类的权限设定会约束类成员的权限设定;
     95         *
     96         *十、this关键字
     97         *1.this可以调用成员变量和成员方法;
     98         *2.this引用就是对一个对象的引用;
     99         *3.this 可以作为方法的返回值,返回一个类;
    100         *
    101         *十一、一个.java文件中可以有很多类。
    102         *1.public 权限的类只能有一个(也可以一个都没有,但最多只有1个)
    103         *2.这个.java文件的文件名必须是public类的类名(一般的情况下,这里放置main方法是程序的入口。)
    104         *3.若这个文件中没有public的类,则文件名随便是一个类的名字即可
    105         *4.你用Javac 编译这个.java文件的时候,它会给每一个类生成一个.class文件
    106         */
    107         
    108         //范例一、自定义学生类,实例化及调用
    109         
    110         Students st=new Students("sunshine",false,28);    //创建对象
    111         System.out.println("姓名:"+st.getName());
    112         System.out.println("性别:"+st.getSex());
    113         System.out.println("年龄:"+st.getAge());
    114         
    115         //范例二、温度单位转换工具
    116         System.out.println("请输入要转换的温度(单位:摄氏度)");
    117         Scanner in=new Scanner(System.in);
    118         double celsius=in.nextDouble();
    119         CelsiusConvert cc=new CelsiusConvert();
    120         double fahrenheit=cc.getFahrenheit(celsius);
    121         System.out.println("转换成成的温度是(单位:华氏度)"+fahrenheit);
    122         in.close();
    123         
    124     }//main方法结束 
    125 
    126             // 定义构造方法
    127             public HelloClassObject() {
    128                 this("this 调用有参构造方法!");
    129                 System.out.println("无参构造方法");
    130             }
    131         
    132             public HelloClassObject(String name) {
    133                 System.out.println("有参构造方法");
    134             }
    135     
    136     }//HelloClassObject 类结束
    137 
    138         
    139         /*************
    140          * @author sunshine
    141          *自定义Book类
    142          */
    143          class Book {
    144             // 定义成员变量
    145             private int id;
    146             private String name;
    147             private String category;
    148         
    149             // 定义成员方法
    150             public String getName() {
    151                 int id=7; //局部变量
    152                 setName("Java"); // 调用类中其它方法
    153                 return id + this.name; // 设置方法返回值
    154             }
    155         
    156             public void setName(String name) {
    157                 this.name = name; // 将参数值赋予类中的成员变量
    158             }
    159         
    160             public Book getBook() {
    161                 return this;
    162             }
    163         
    164             // 静态变量,可以在本类或其它类中调用
    165             static double PI = 3.14159;
    166         
    167             // 静态方法,可以在本类或其它类中调用
    168             public static void girl() {
    169                 System.out.println("静态方法girl,你调用了Book中的girl方法了~~~");
    170         
    171             }
    172         }//Book类结束
    173 
    174 
    175         /*************
    176          * @author sunshine
    177          *范例一、自定义学生类
    178          */
    179         //同一个java文件中可以有多个类
    180         class Students{
    181             private String name;
    182             private boolean sex; //true,男,false,女
    183             private int age;
    184             
    185             public Students(String name,boolean sex,int age){ //构造函数,实例化对象时,自动执行;
    186                 this.name=name;
    187                 this.sex=sex;
    188                 this.age=age;
    189                 
    190             }
    191             public String getName(){
    192                 return name;
    193             }
    194             public boolean getSex(){
    195                 return sex;
    196             }
    197             public int getAge(){
    198                 return age;
    199             }            
    200         }//Students类结束
    201 
    202         //范例二、温度单位转换工具
    203          class CelsiusConvert{    //public 不能用这个修饰,一个java文件中public的类只能有一个
    204         
    205             public double getFahrenheit(double celsius){
    206                 double fahrenheit=1.8*celsius+32;
    207                 return fahrenheit;
    208             }
    209             
    210         }
    211         //CelsiusConvert类结束

    输出结果:

     1 学习类和对象!类~~~~~~
     2 Everyday
     3 sunshine
     4 happy
     5 调用Book类的静态变量3.14159
     6 静态方法girl,你调用了Book中的girl方法了~~~
     7 输出幸运数字和书名:7Java
     8 姓名:sunshine
     9 性别:false
    10 年龄:28
    11 请输入要转换的温度(单位:摄氏度)
    12 35
    13 转换成成的温度是(单位:华氏度)95.0
  • 相关阅读:
    mr程序无法输出日志进行调试的解决方法
    2015年度总结
    Hadoop数据目录迁移
    Oracle数据迁移至HBase操作记录
    Hadoop端口一览表
    Hadoop Maven pom文件示例
    十个书写Node.js REST API的最佳实践(下)
    iOS 程序从开发完到上 AppStore 那点事儿
    拿什么拯救你,我的三十五岁
    Spark 以及 spark streaming 核心原理及实践
  • 原文地址:https://www.cnblogs.com/sunshine-habit/p/5594925.html
Copyright © 2011-2022 走看看