一、属性和方法封装private
1、封装的目的保护某些属性和方法不被外部看到
2、封装的实现,为属性和方法进行封装使用private方法,为外部访问。
举例如下:
package com.guo.ci;
class Person{
private int age;
private String name;
public int getAge() {
return age;
}
/* public void setAge(int age) {
if (age>=0&&age<=200) {
this.age=age;
}
}*/
public void setAge(int a) {
if (a>=0&&a<=200) {
age=a;
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void tell(){
System.out.println("年龄"+getAge()+" "+"姓名"+name);
}
}
public class Demo1 {
public static void main(String[] args) {
Person per =new Person();
per.setAge(-30);
per.setName("test");;
per.tell();
}
}
二、匿名对象
没有名字的对象,如果程序中只有一次使用该对象,就可以使用匿名对象,例如:
package com.guo.ci;
class Student {
public void tell() {
System.out.println("hello world");
}
}
public class Demo2 {
public static void main(String[] args) {
new Student().tell();
}
}
三、构造方法
1、格式:访问修饰符 类名称(){程序语句}
2、注意:构造方法的名称必须与类名一致;构造方法无返回值(无return)
3、构造方法主要是为类中的属性初始化
4、每个类在实例化之后都会调用构造方法,如果没有构造方法,程序在编译的时候会创建一个无参的什么都不做的构造方法。
5、构造方法也可以重载
package com.guo.ci;
class Person1 {
String name;
int age;
//构造函数
public Person1(String n,int a) {
name=n;
age=a;
System.out.println("姓名:"+name +" "+"年龄:"+age);
}
public Person1(int a) {
age=a;
System.out.println("年龄:"+age);
}
}
public class Demo3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Person1 per=new Person1("张三",30);
Person1 per=new Person1(30);
}
}
重载的时候根据传递参数的个数选择执行的构造函数