Java类学习(二)
来源:互联网 发布:js赋值给input 编辑:程序博客网 时间:2024/05/22 01:49
访问权限
- 同C++, java封装数据和方法会有不同访问权限
- 数据和方法设为public可以被所有类的所有方法调用
- private的内容只能被该类的方法调用才能访问
静态变量和静态方法
- 静态变量不是类实例的内容, 是在对象创建之前就存在的类内容
- 静态变量只有一个拷贝
- java静态方法可以用对象或类名调用(最好是类名), 一般是不需要引用对象的方法(这部分不具有面向对象特征), 比如Math.pow();
静态常量
- ex. Math.PI, 首先是类的静态域, 然后是不可变的常量
- import static java.lang.Math.*; double ans = PI;
类构造器
- java构造器默认是把数据设为0, 布尔设为false, 对象设为null
- 如果类中不含任何构造器, 则程序在new时会调用默认的无参构造器
- 构造器可以重载, 事实上, 任何方法都可以被重载
- 一个类可以包含多个构造器
- this关键字可以在构造器中调用其他构造器(参数要合法)
code:
//package adruill;import static java.lang.Math.*;public class lrl{ private String IDNO; private String RMNO; private int height; private static int id = 1; private int ID; public static void main(String[] args){ lrl[] std = new lrl[1];//构造对象数组 std[0] = new lrl();//对象构造函数接口构造对象 double ans = PI; if(std[0].getIDNO() == null) ot("Null");// else ot("init"); } /* public lrl(String _IDNO, String _RMNO, int _height){ IDNO = _IDNO; RMNO = _RMNO; height = _height; ID = 2; id++; } public lrl(){ this("E115", "1521", 177); }*/ public static int pow(int a, int b){ int res = 1; while(b > 0){ if((b & 1) > 0) res = res * a; a = a * a; b >>= 1; } return res; } public int getHeight(){ return height; } public String getIDNO(){ return IDNO; } public String getRMNO(){ return RMNO; } public int getID(){ return ID; } public static int getid(){ return id; } public String cmpHeight(lrl tmp){ return height >= tmp.height ? "Taller" : "Lower"; } public static void ot(String s){ System.out.println(s); } public static void pp(lrl tmp){ ot("学号 : " + tmp.getIDNO() + ", 寝室号 : " + tmp.getRMNO()); ot("" + tmp.getHeight()); ot("ID : " + getid()); }}
运行结果:
- 可以看到这里因为没有编写构造器的原因, 系统调用默认构造器
, 把IDNO对象初始化为null; - 这段构造器注释去掉, IDNO对象被初始化非null(this关键字作用)
- 这里, pow()和ot()和lrl对象本身没有关联, 所以设为静态方法, 直接用类调用(ps : 访问类静态域的getid相似)
- 而诸如getDMNO();等方法, 必须要有对象引用, 所以不能有static关键字
每个类都可以用一个main方法
ex: 在命令行下可以用java + 类名测试某个类, 且不会调用其它类main方法
1 0
- java学习二:类
- Java类学习(二)
- JAVA 学习模块二十: String 类
- java学习(二)-----基本类
- Java学习笔记(9)-StringBuilder类二
- 学习java心得体会(二)
- Java学习课堂(二)
- JAVA学习笔记(二)
- JAVA学习笔记二
- 学习java心得体会(二)
- Java学习笔记二
- java学习中二
- java学习笔记二
- JAVA学习笔记《二》
- java学习小记二
- JAVA学习 二
- Java学习笔记二
- Java学习笔记二
- 二进制中1的个数
- Windows 2012 R2上搭建IIS管理用户的隔离模式FTP
- 02 - 微信小程序实例开发 - 天气情况
- 3_opencv简单视频播放控制
- 高级电子版 ---- C# 图解教程 ,PDF 电子书
- Java类学习(二)
- 总结一下最短路径的弗洛伊德算法(Floyd)
- H5中localStorage存储信息
- 4_opencv从摄像头读入数据
- 按值传递的意义
- 更快实现Android多级树形选择列表
- 03 - 微信小程序实例开发 - 问答机器人
- 用两种方式实现单实例(Java版)
- HMM预测妹子心情