java复习 面向对象4
来源:互联网 发布:台儿庄战役知乎 编辑:程序博客网 时间:2024/05/21 17:05
构造方法私有化:
类的封装性不光体现在对属性的封装上,实际上方法也是可以被封装的
一个类的构造方法被私有化之后,则只能在类的内部取得实例化对象,所以
在类的内部先声明成static类型,若封装起来,则加getInstance()方法返回
类的实例.
单台设计模式:
1.将构造方法私有化
2.在类的内部定义static类型的类类型的变量
3.在类的内部定义返回类实例的方法(加入判断)
用此模式只产生一个对象(一个内存地址)
public class Singleton
{
private Singleton()
{
}
private static Singleton st = null;
public Singleton getInstance()
{
if(st==null)
{
st = new Singleton();
}
return st;
}
}
对象数组:
所谓对象数组就是一组相关的对象
对象数组的声明: 类 对象数组名称[] = new 类[数组长度];
数组本身事属于引用数据类型的:而类本身也是属于引用数据类型的,所以不管是
引用还是基本数据类型都可以使用数组的格式进行声明并使用.
对象数组也分为静态和动态的.在没有实例化之前,值都为空.
eg:
public class Person
{
private String name;
public Person(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
}
动态初始化:
Person per[] = new Person[2]; //在没有实例化之前为null;
per[0] = new Person("张三"); //为数组元素实例化
per[1] = new Person("李四");
静态初始化:
Person per[] = {new Person("张三"),new Person("李四")};
对象数组元素获取属性:per[1].getName();
内部类:
在一个类的内部还存在一个类,则称为内部类,内部类可以声明为public或
private,当内部类声明成public或private时,对其访问的限制与成员变量和
成员方法完全相同.
优点:可以访问外部类的私有属性.
使用static声明内部类,则此内部类就称为外部类,可以直接通过外部类.内部类
进行访问.但是如果要想访问外部类的属性,则属性必须是static.
在外部类访问内部类格式:
外部类.内部类 内部类对象 = 外部类实例.new 内部类();
内部类在任意的位置上定义
系统登录:
验证用户密码类:
class Check
{
public boolean isLogin(String name,String pass)
{
if("cyq".equals(name)&&"1234".equals(pass))
{
//System.out.println("登陆成功!");
return true;
}
else
{
//System.out.println("登陆失败!");
return false;
}
}
}
验证参数类:
class Exit
{
public boolean len(String exit[])
{
if(args.length!=2)
{
System.out.println("参数不正确!请重新登陆!");
System.out.println("/n参数格式为:java LoginMain 参数1 参数2");
System.exit(1);
}
}
}
登陆类:
class Login()
{
private String[] info;
public Login(String info[])
{
this.info = info;
}
String name = info[0]; //传递参数
String pass = info[1];
String str = null;
Exit exit = new Exit();
Check check = new Check();
public String message()
{
if(exit.len()) //验证长度
{
if(check.isLogin(name,pass)) //验证参数
{
str = "登陆成功!"+"欢迎"+name+"光临";
}
else
{
str = "登陆失败!请重新登陆!";
}
}
}
return str;
}
程序入口:
public class LoginMain
{
public static void main(String args[])
{
Login l = new Login(args);
System.out.println(l.message());
}
}
单向链表
链表是在数据结构中将常见到的一种形式,实际上在java中也可以通过引用传递
的方式进行实现,必须设计节点类,一个节点类除了要保存自己的内容之外,还要保存
下一个节点的引用.
eg:
class Node
{
private String data; //保存节点的内容
private Node next; //保存下一个节点
public Node(String data)
{
this.data = data;
}
public void setData(String data)//设置节点的内容
{
this.data = data;
}
public String getData()
{
return this.data;
}
public void setNext(Node next)
{
this.next = next;
}
public Node getNext()
{
return this.next;
}
}
public class NodeDemo
{
public static void main(String args[])
{
Node root = new Node("火车头"); //实例化根节点
Node n1 = new Node("车厢A"); //实例化第一个节点
Node n2 = new Node("车厢B"); //实例化第2个节点
Node n3 = new Node("车厢C"); //实例化第3个节点
Node n4 = new Node("车厢D"); //实例化第4个节点
root.setNext(n1); //保存下一个节点的引用
n1.setNext(n2); //第一个节点设置下一个节点为第二个
n2.setNext(n3); //第二个节点设置下一个点解为第三个节点
n3.setNext(n4);
printNode(root); //从头开始输出
}
public void printNode(Node node)
{
System.out.print(node.getData());
if(node.getNext()!=null)
{
printNode(node.getNext()); //递归调用
}
}
}
- java复习 面向对象4
- java面向对象复习
- java面向对象复习
- Java 面向对象复习
- java面向对象复习
- java复习 面向对象1
- java 复习 面向对象2
- java 复习面向对象3
- java复习二:面向对象
- day05--Java面向对象复习
- Java面向对象复习笔记
- 复习(java):语法:面向对象
- Java面向对象复习1
- Java面向对象复习笔记
- Java面向对象基础知识复习
- 复习java面向对象(使用对象)
- (复习笔记之JAVA)面向对象
- Java基础复习:面向对象练习1
- NET小常识
- java复习 面向对象1
- java 复习 面向对象2
- java 复习面向对象3
- Linux下jdk的安装与配置
- java复习 面向对象4
- 《高质量C++编程指南》读后笔记零
- 从零开始写bootloard
- 如何实现这个功能呢?
- 马化腾致歉 切勿在竞争中迷失自我
- 数据链路层
- 大家帮忙看看这道题
- 点评2009年PHP十大图书(5)
- 数据链路层