您的位置:首页 > 编程语言 > Java开发

java学习收获

2014-12-05 21:10 141 查看
this.setName(name);跟this.Name=name;的差别:

两者是一样的,不会影响程序的运行,都是设置内容,随便怎么写,两者是没有差别的。

按快捷键alt+shift+s 提示出的内容,传递的量,没必要改成:

public void setTitle(String t){

title=t;

}

(原本提示显示的内容:public void setTitle(String title){

this.title=title;

}) 两者的效果其实是一样的。

2014.12.06

public boolean compare(Person per) {

Person p1=this;

Person p2=per;

if(p1==p2){

return true;

}

if(p1.name.equals(p2.name)&&p1.age==p2.age){

return true;

}else{

return false;

}

}

与此同时,我学到了:在java中的equals比较的是两个变量或者两个实例所指向的内存空间的值是不是相同;而==比较的则是两个变量或者实例所指向的内存空间是不是一样。

static 决定的是全局变量:

class Demowe{

private static int count = 0; //如果不加static显示的结果就是产生了1个对象!产生了1个对象!产生了1个对象!而不是产生了1个对象!产生了2个对象!产生了3个对象!因为count不是全局变量,每次运行程序的时候都是默认的是它为1,而不是

public Demowe(){

count++;

System.out.println("产生了"+count+"个对象!");

}

}

public class Demo{

public static void main(String[] args){

new Demowe();

new Demowe();

new Demowe();

}

}

static 类型的属性可以被类名称直接调用,在这边我们可以使用instance属性来声明static类型(也就是所说的构造方法私有化):

class Singleton{

static Singleton instance = new Singleton();

private Singleton(){

}

public void print(){

System.out.println("Hello world!");

}

}

public class Demo{

public static void main(String[] args){

Singleton s1=Singleton.instance;

s1.print();

}

}

系统登录验证:

class Check{

public boolean validate(String name,String password){

if(name.equals("jidsajsida")&&password.equals(12354)){

return true;

}else{

return false;

}

}

} //就是用来判断的一个函数类型

class Operate{

private String info[];

public Operate(String info[]){

this.info=info;

} //通过构造的方法来传入数值

public String login(){

Check check=new Check();

this.isExit();

String name=this.info[0];

String password=this.info[1];

String str=null;

if(check.validate(name, password)){

str="你输入的帐号和密码不刍符合,系统自动退出!" ;

}else{

str="错误的用户名和密码!";

}

return str;

}

public void isExit(){

if(this.info.length!=2){

System.out.println("输入的参数不正确,系统自动退出!");

System.out.println("格式为:jajdja j ajdja");

System.exit(1);

}

}

}

public class Demo{

public static void main(String[] args){

Operate operate=new Operate(args);

System.out.println(operate.login());

}

}

一般的都是分两个check和operate:check的作用是验证操作;operate的操作是封装check类的操作,并把check 的信息返回调用处。

在java的继承中,只允许多层继承,而不能多重继承:

错误的继承代码:



class A{}

class B{}

class C extends A,B{}

】这种继承方法是不对的,这算是多重继承;允许多层继承

(下面是多层继承)

class A{}

class B extends A{}

class C extends B{}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: