1.知识要点

❶不可变类:一旦创建,其内容不能改变的类称之为不可变类。满足:⑴所有数据域私有,⑵没有修改器,⑶没有访问器方法,其返回一个指向可变数据域的引用。(这样通过引用就能修改私有数据域)。比如,返回数组,String等皆可能导致实际数据被改变

❷变量作用域:类的变量和方法可以任意顺序出现,只要方法没有使用某个变量。方法可以定义与类数据变量名称(实例变量和静态变量)相同的局部变量,且使用具有较高的优先级。

❸this引用:指向本身的引用。可以在无参和少参构造函数中使用this调用多参构造函数,便于维护,使用方法this(参数表)。此时this指向类名。Java要求这种使用在任何其他语句之前出现。

❹一个对象可以包括另外一个对象,关系称之为组合。即类的数据域可以定义另外一个类的引用变量。

2.类的设计原则

❶内聚性:描叙单一实体。所有操作应该在逻辑上配合,支持连贯的目标。

❷一致性:命名遵循规则

❸封装性:private隐藏数据域。get和set提供访问器和修改器。

❹清晰性:在不产生混淆的情况下,凭直觉来定义。

❺完整性:供不同的用户使用的齐备功能

❻实例和静态:不依赖于单独对象的变量和方法应该声明静态。实用类名引用静态变量和方法。提供公有的静态修改器,修改静态数据域。实例可以调用静态(实例和方法),但静态不能调用实例(变量和方法)



3.实例-栈

public class StudyObject
{
static int size=10;
public static void main(String args[])
{
Stack mystack = new Stack();
java.util.Random random=new java.util.Random();//随机数
random.setSeed(100);
for(int i=0;i<size;i++)
mystack.push(random.nextInt(56));
mystack.getElements();
System.out.println();
mystack.pop();
mystack.getElements();
} } class Stack
{
private int[] elements;
private int size=0;
public static final int DEFAULT_CAPSITY=4; Stack(){this(DEFAULT_CAPSITY);}//this构造函数 此处和Stack指向相同的引用
Stack(int capcity)
{elements=new int[capcity];} public void push(int e){
if(size>=elements.length)
{
int[] temp=new int[size+1];
System.arraycopy(elements, 0, temp, 0, size);//扩展数组,字符串复制
elements=temp;
}
elements[size++]=e;
} public int pop()
{
int last=elements[--size];
int[] temp=new int[size];
System.arraycopy(elements, 0, temp, 0, size);//删除最后一个元素
elements=temp;
return last;
} public int peek()
{return elements[size-1];} public boolean isEmpty()
{return size==0;} public int getSize()
{return size;} public void getElements()
{
for(int i=0;i<size;i++)
System.out.print(elements[i]+" ");
}
}

最新文章

  1. sql表别名
  2. C# 中Join( )的理解
  3. Ajax调用WebService
  4. Xamarin.Forms入门学习路线
  5. HTML5与移动端Web
  6. Installing Cygwin and Starting the SSH Daemon
  7. 洛谷P2724 联系 Contact
  8. java中jdk环境配置
  9. C# lazy&lt;T&gt;的用法
  10. Nyoj 吝啬的国度(图论&amp;&amp;双DFS)
  11. HOOK(钩子)函数
  12. jQuery学习小结
  13. b2OJ_1565_[NOI2009]植物大战僵尸_拓扑排序+最大权闭合子图
  14. Freeradius服务器的搭建流程
  15. Intellij 高亮显示与选中字符串相同的内容
  16. PHP &quot;松散比较&quot;
  17. beautifulSoup基本用法及find选择器
  18. tomcat 、eclipse插件安装、一个机器安装多个tomcat、tomcat闪退的问题解决
  19. python 写文件刷新缓存
  20. php 数组随机取值

热门文章

  1. RLearning第1弹:初识R语言
  2. python基础13 ---函数模块3(正则表达式)
  3. Django模型系统——ORM
  4. PAT 天梯赛 L2-007. 家庭房产 【并查集】
  5. Debug tool 学习笔记
  6. 《程序员代码面试指南》第一章 栈和队列 设计一个有getMin功能的栈
  7. vim设置tab为4空格
  8. hbase shell-namespace(命名空间指令)
  9. curl使用手册
  10. js中的可枚举属性与不可枚举属性