成员属性的封装
属性用private封装后外部将不能直接访问,可以使用get,set方法取得或设置属性。在以后进行类定义的时候,一般情况下都要用private封装属性,并提供set,get方法访问属性;
构造方法
用于在new实例化对象时实现对象中属性的初始化,方法名称与类名称一致,不允许任何返回值。
构造方法和set都可以对属性进行赋值,不同的是构造函数只能设置一次,set方法可以随时设置修改属性的值;
匿名对象:实例化对象后,不使用任何变量来表示
this调用本类成员、属性、构造方法
属性:this.属性;
方法: this()、this.方法名称();
this本身表示当前对象;
在以后所编写的程序代码之中,只要是访问本类中属性的时候,一般要加上this。
对构造函数的调用必须在构造函数的首行;构造方法能调用构造方法和普通方法,普通方法只能调用普通方法;构造函数不能互相调用以免造成死循环;
简单Java类,核心开发结构如下:
类名称一定要有意义,可以明确描述某一类事物;
类中的所有属性都必须使用private进行封装,同时封装后的属性必须要提供get,set方法;
类中可以有无数多个构造方法,但是必须要保留无参构造方法;
类中不允许出现任何的输出语句,所有内容的获取必须返回;
【非必须】可以提供一个获取对象详细信息的方法,一般定义方法名为getInfo();
code:
class Person { //默认(无参构造函数) public Person() { } public Person(String name) { this(); this.name = name;//使用this,不用this就是参数,用this就是属性 } //有参构造函数 public Person(String n,int a) { //name = n; //age = a; this(n); this.setAge(a); } private String name;//姓名 private int age;//年龄 public void setName(String n)//属性set方法 { name=n; } public void setAge(int a)//属性set方法 { if(a>=0)//get、set属性能进行逻辑判断 { age=a; } } public String getName()//属性get方法 { return name; } public int getAge()//属性get方法 { return age; } public void tell()//方法 { System.out.println("姓名:"+name+",年龄:"+age); } } public class PropertyDemo { public static void main(String[] args) { Person p=new Person(); p.setName("张三"); p.setAge(19); p.tell(); Person p2=new Person("李四",22);//使用构造函数初始化属性 p2.tell(); new Person("匿名侠",0).tell();//匿名对象使用 Dept dept=new Dept(10012,"开发部");//简单Java类调用 System.out.println(dept.getInfo()); } } class Dept{//简单java类示例:部门 private long deptno; private String deptname; public Dept(){}//无参构造方法 public Dept(long deptno,String deptname) { this.deptno=deptno; this.deptname=deptname; } public void setDeptno(long deptno) { this.deptno=deptno; } public void setDeptname(String deptname) { this.deptname=deptname; } public long getDeptno() { return this.deptno; } public String getDeptname() { return this.deptname; } public String getInfo() { return "【部门信息】部门编号:"+this.deptno+"、部门名称:"+this.deptname; } }
执行效果: