zoukankan      html  css  js  c++  java
  • Java类详解

      1 //package 语句 声明 类的位置,会建立相应的文件夹,存放类
      2 //package 包名;  只能有一条,不能写多个
      3 package org.java;
      4 
      5 //import 语句
      6 //一个类可能会需要另一个类声明的ui想 类作为自己的成员  或 者反发的局部变量
      7 //若两个类不在同一个包中,就需要导入import语句
      8 //import 类所在的包 的名字
      9 import java.util.*;//包含数据结构类
     10 import java.io.*;//包含所有的输入/输出类
     11 import java.sql.*;//包含数据库类
     12 import java.net.*;//包含所有实现网络功能的类
     13 import java.lang.*;//包含所有的基本类
     14 
     15 /*
     16  面向对象编程:有三个特性,封装性,继承性,多态性
     17   
     18   java 类总结
     19   1:类的实现
     20          包括:类的声明和类体
     21        1.1:类的声明:
     22          格式如下:class 类名{
     23           类体
     24        }
     25      1.2:类体:
     26          1.2.1变量的声明,刻画属性
     27          1.2.2方法的定义,刻画功能
     28          变量的声明部分声明的变量为:成员变量
     29          方法体中的变量为和方法的参数为:局部变量
     30          
     31  访问权限:
     32  类的访问权限:
     33       public:其他包中的类可以访问这个 类 
     34        缺省: 这个类 只能在本包中 进行访问
     35  成员的访问权限:
     36      public:都可以访问
     37      private:只能在本类中进行访问
     38      protected: 在本包中 和  子类中 能被访问,其他的访问出错
     39      缺省:在本包中 能被访问
     40  */
     41 public class Test {
     42     //Test为类名:合法标识符:字母,下划线,数字和美元组成,第一个字符不能为数字,且拉丁字母首字母大写;
     43     
     44     //变量的声明:成员变量->在整个类内部有效
     45     //                成员变量分为:实例变量  和  类变量(static关键字修饰,也称为静态变量)
     46     //方法体中声明的变量和方法的参数为:局部变量->只在方法中有效
     47     
     48     //方法:实例方法  和  类方法
     49     //实例方法:没有static关键字,
     50     //类方法:加上static 关键字 即为类方法
     51     
     52     
     53     //变量的类型:整型,浮点型,字符型等基本类型,和数组,对象,接口等引用类型
     54     //基本类型数据:
     55     //    逻辑类型:boolean
     56     //  整数类型:byte,short,int,long;//分别分配,1,2,4,8 个字节
     57     //    字符类型:char;//2个字节
     58     //    浮点类型:float,doble;//分别分配4,8个字节
     59     // 注意:级别低的变量 赋值给 级别高的变量的时候,会自动进行类型转换
     60     //        但是级别高的变量 赋值给 级别低的变量的时候,需要显示的类型转换 
     61     int width;//实例变量
     62     int height;//实例变量
     63     String name;//实例变量
     64     static int cnt;//类变量|静态变量
     65     
     66     //类的完整性包括 set方法,get方法,toString方法和功能方法,构造方法(无参,有参)
     67     
     68     //功能方法
     69     //方法的定义包括:方法的声明和方法体
     70     //格式:  方法的声明{
     71     //            方法体
     72     //        }
     73     //方法的声明:包括 方法名 和方法返回类型
     74     //如下 int(返回类型)  area(方法名)    
     75     //实例方法:
     76     //    可以操作实例变量,也可以操作类变量;
     77     //     也可调用实例方法,也可以调用类方法;
     78     public int area(int width,int height) {//int height 局部变量
     79         //成员变量的隐藏:若是 局部变量的名字 和 成员变量 名字相同,那么这个方法隐藏了成员变量
     80         //                可以使用this.成员变量的名字,使成员变量有效
     81         int tmpData=0;//局部变量,只有初始化之后,才可以使用,否则报错
     82         cnt++;//实例方法操作 类变量
     83         System.out.println(tmpData);
     84         this.width=width;
     85         this.height=height;
     86         return this.height*this.width;
     87     }
     88     //多态包括:两种:重写(overload) 和 重载(Override)
     89     //重载:方法的名字相同,但是 参数个数不同 或者 参数类型不同
     90     //重载  area方法->方法类型不同
     91     //重写:重写父类的方法 或者称为 覆盖父类的方法
     92     public double area(double x,double y) {
     93         x=width;//this 可省略,操作实例变量
     94         y=this.height+1.0;
     95         return x*y;
     96     }
     97     
     98     //类方法:加上static关键字
     99     //         类方法只能操作类变量,不能操作实例变量
    100     //        只能调用类方法,不能调用实例方法
    101     public static int count() {
    102         cnt++;//类方法 操作类变量
    103         Test.cnt++;//或者通过 类名.类变量操作 
    104         return cnt;
    105     }
    106     
    107     
    108     //构造方法:无参
    109     //构造方法的名字和类名一样
    110     public Test() {
    111         super();
    112     }
    113     //构造方法:有参(也属于重载)
    114     public Test(int width, int height, String name) {
    115         super();
    116         this.width = width;
    117         this.height = height;
    118         this.name = name;
    119     }
    120 
    121     //get,set方法
    122     public int getWidth() {
    123         return width;
    124     }
    125 
    126     public void setWidth(int width) {
    127         this.width = width;
    128     }
    129     public int getHeight() {
    130         return height;
    131     }
    132     public void setHeight(int height) {
    133         this.height = height;
    134     }
    135     public String getName() {
    136         return name;
    137     }
    138     public void setName(String name) {
    139         this.name = name;
    140     }
    141 
    142     //重写object里面的toString()方法
    143     //创建类时,若是没有指明父类,那么会默认为object类
    144     //会继承object里面的所有方法
    145     //所以这里才能重写 父类object类里面的toString方法
    146     //重写
    147     @Override
    148     public String toString() {
    149         return "Test [width=" + width + ", height=" + height + ", name=" + name + "]";
    150     }
    151 
    152     
    153     
    154 
    155     
    156 }
  • 相关阅读:
    【锁】java 锁的技术内幕
    【BlockingQueue】BlockingQueue 阻塞队列实现
    【多线程】获取多个线程任务执行完事件
    【spring cloud】源码分析(一)
    【spring boot】FilterRegistrationBean介绍
    【FAQ】服务下线
    解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)...
    实现人民币大写代码解析
    application.yml使用@符合问题:'@' that cannot start any token. (Do not use @ for indentation)
    Maven常见异常及解决方法---测试代码编译错误
  • 原文地址:https://www.cnblogs.com/NirobertEinteson/p/12008436.html
Copyright © 2011-2022 走看看