@liruiyi962464
2017-03-20T11:22:08.000000Z
字数 2851
阅读 477
java
- private:由此访问修饰符修饰了的方法以及属性只能在当前类使用
- 默认(方法或者属性不加访问修饰符);对应的方法以及属性使用的范围只能是在相同的包里使用
- protcted:不同包里使用
- public:访问权限最大,课题任意地方
位置 | private | 默认 | protected | public |
---|---|---|---|---|
同一个类 | 是 | 是 | 是 | 是 |
同一个包不同类 | 否 | 是 | 是 | 是 |
不同包内的子类 | 否 | 否 | 是 | 是 |
不同包并且不是子类 | 否 | 否 | 否 | 是 |
//定义了私有变量name
private String name;
//取值name属性的方法
//this:代表当前类的对象
//通过this可以对当前类的属性以及方法进行操作(赋值,调用,返回对应属性的值)
//获取name的方法
public String getName() {
return this.name;
}
//给name赋值的方法
public void setName(String name) {
this.name = name;
}
Student stu = new Student();
stu.setName("张三");
String name = stu.getName();
System.out.println(name);
- “-” 私有 private(-age:int)
- “+” 公开的 public
- “#” 受保护 protected
- 构造方法名与类名相同
- 没有返回值类型
- 方法实现主要是为字段赋初始值
- new操作符(返回新建实例的引用)
- 强调:Java系统保证每个类都有构造方法
//默认的构造方法
public Student(){}
//构造方法用来创建对象 (实例化对象)给属性赋值
public Student(String name, int age, String sex, String stuNo){
this.name = name;
this.age = age;
this.sex = sex;
this.stuNo = stuNo;
}
//赋值方式1
Student stu1 = new Student();
stu1.setName("李云龙");
stu1.setAge(105);
stu1.setSex("男");
stu1.setStuNo("001");
stu1.showStudentMessage();
//赋值方式2
Student stu2 = new Student("意大利炮",18,"男","9527");
stu2.showStudentMessage();
- this:代表当前类的对象
- 通过this可以对当前类的属性以及方法进行操作(赋值,调用,返回对应属性的值)
- 1.static 用来修饰累的成员(属性和方法)
- 2.由static修饰的方法又称之为静态方法,由static修饰的属性称之为静态变量
- 3.注意;(1)静态方法中不能使用this关键字
- (2)静态方法中只能访问外部中的静态变量
- 4.有static关键字修饰的成员的使用
- 静态属性:类名.静态属性名称
- 静态方法:类名.静态方法名称
- 5.静态变量称之为共享变量,也就是一次创建
public static String name;//静态变量
public int age;//属性称之为,全局变量(作用于整个类)
public static void showTeacherMessage(){//定义了一个静态方法
System.out.println("姓名:"+name);
//System.out.println("年龄:"+age);//只能访问静态变量
}
//但是静态变量可以给普通方法使用
public void showMessage(){
System.out.println("姓名:"+name);
System.out.println("年龄:"+age);
//System.out.println("年龄:"+age);//只能访问静态变量
}
//给静态属性赋值
Teacher.name = "王五";
//调用静态
Teacher.showTeacherMessage();
Teacher tea1 = new Teacher();
//共享变量
tea1.name="张三";
tea1.age=18;
Teacher tea2 = new Teacher();
tea2.name="赵四";
tea2.age=19;
Teacher tea3 = new Teacher();
tea3.name="二柱";
tea3.age=20;
tea1.showMessage();
tea2.showMessage();
tea3.showMessage();
- 方法名字一样参数列表不同的多个方法我们称之为方法重载
- 与返回值无关
- 构造方法是方法 所以也能重载
- 方法签名:方法名+参数列表
- 重载:方法签名不一样,具体就是数据参数列表不一样
- 调用的时候根据传入的参数来决定调用哪个方法
String name;
String sex;
int age;
String stuNo;
public void showMessage(String name){
this.name = name;
System.out.println("姓名:"+this.name);
}
public void showMessage(String name,String sex){
this.name = name;
this.sex = sex;
System.out.println("姓名:"+this.name);
System.out.println("性别:"+this.sex);
}
public void showMessage(String name,String sex,int age){
this.name = name;
this.sex = sex;
this.age = age;
System.out.println("姓名:"+this.name);
System.out.println("性别:"+this.sex);
System.out.println("年龄:"+this.sex);
}
public void showMessage(String name,String sex,int age, String stuNo){
this.name = name;
this.sex = sex;
this.age = age;
this.stuNo = stuNo;
System.out.println("姓名:"+this.name);
System.out.println("性别:"+this.sex);
System.out.println("年龄:"+this.sex);
System.out.println("学号:"+this.stuNo);
}
Method mt = new Method();
mt.showMessage("张三");
mt.showMessage("张三","男");
mt.showMessage("张三","男",20);
mt.showMessage("张三","男",20,"9527");