今天开始学习java,第一次自学其他语言,真是有些小兴奋呢,这些与C++不同的特性或是不熟悉的特性都希望能将其记录下来,日后便于查阅复习,顺便见证下自己的成长轨迹,嘿嘿嘿。。。
今日问题
搞定
- java简单类是啥,咋用
- this关键字三类用法
半懂
- this在重载的构造方法中调用其它构造方法为啥要置顶??
懵逼
- String类两种构造方法的区别,字符串构造,普通类构造??
- 字符串内容一旦声明后不可改??
java简单类 is what??
java简单类是一种重要的开发模型,也可以称为一种编写规范,有四条原则须遵守
- 1,类中所有属性必须用private修饰(封装体现)
- 2,类中所有属性必须有setter,getter方法(进一步支持封装)
- 3,类中若有重载构造方法,需按照参数有序排列(升/降)(好看);一定要包括一个无参构造方法(避免后续出错)
- 4,不允许在类的方法中使用打印语句(System.out.println),若想打印,必须将结果返回调用处
this关键字 is what???
this关键字可将其看成一个对象,所以对象能干的事它基本都能干,不过他是特指本类,他有三种用法
- 1,表示本类属性:this.属性
- 2,表示本类方法,方法分为普通方法:this.方法名(),构造方法:this()
- 3,表示当前对象
tips表示本类属性、方法或对象可在类中任意位置使用,但是表示构造方法则有限制
- 1,仅在构造方法中调用
- 2,必须置于第一句(实例化对象调用优先级:构造方法>普通方法>其他语句)
- 3,this可用来提高复用性
一个员工例子说明java简单类原则,this关键字使用属性及方法
public class Employee {
//原则1:所以属性加上private
private String id;
private String name;
private String salary;
private String department;
//原则2:若有多个重载构造函数,按照参数个数升序或降序排放;
// 必须要有无参构造函数
public Employee() {}
public Employee(String id) {
this.id = id;//this使用属性
}
public Employee(String id,String name) {
this(id);//this调用构造方法,必须置于第一行
this.name = name;//this使用属性
}
public Employee(String id,String name,String salary,String department) {
this(id,name);//this调用构造方法,必须置于第一行
this.setSalary(salary);//this调用普通方法,等价于this.salary = salary;
this.department = department;//this使用属性
}
//原则3:每个属性均有setter,getter方法
public void setId(String id) {
this.id = id;
}
public String getId() {
return this.id;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setSalary(String salary) {
this.salary = salary;
}
public String getSalary() {
return this.salary;
}
public void setDepartment(String department) {
this.department= department;
}
public String getDepartment() {
// System.out.println("不可以直接在方法中输出,必须将值返回给调用处");原则四
return this.department;
}
public static void main(String[] args) {
Employee e = new Employee("100","阿俊","10000","技术部");
System.out.println(e.getId());
System.out.println(e.getName());
System.out.println(e.getSalary());
System.out.println(e.getDepartment());//调用处输出
e.setId("666");
System.out.println(e.getId());
}
}
输出结果
1
2
3
100
阿俊
10000
技术部
666
一个简单例子演示this关键字表示对象
class DemoA{
public void print() {
System.out.println("当前对象:"+this);
}
}
public class Demo_this {
public static void main(String[] args) {
DemoA d1 = new DemoA();//声明并实例化对象
DemoA d2 = new DemoA();
System.out.println(d1);//输出对象
d1.print();//调用函数测试输出(违背了java类原则4,不过这里是为了演示效果)
System.out.println("==============");
System.out.println(d2);
d2.print();
}
}
结果
DemoA@7852e922
当前对象:DemoA@7852e922
==============
DemoA@4e25154f
当前对象:DemoA@4e25154f