首页 | 手机版 | 三国演义 | 三国志 | 史将 | 背景 | 藏书阁
首页 -> 精彩文章 -> 国培JAVA编程笔记第四章3

国培JAVA编程笔记第四章3

作者wangger 标签java 阅读次数:0

一、public和private
    public权限是指所有类都能访问,也就是在所有类中都是可见的。
    private权限是指只有本类才能访问,只有在本类才可见。
    public和private都可以修饰成员。
    private成员可以通过本类中public成员进行间接的访问。
public class Person {
 private double weight;
 public static int counter;
 public void setWeight(double w){
  weight = w;
 }
 public double getWeight(){
  return weight;
 }
}

public class Test {
 public static void main(String[] a){
  Person p1 = new Person();
  p1.setWeight(70);
  p1.counter++;
  System.out.println("第" + p1.counter + "位顾客的体重是:" + p1.getWeight());
  Person p2 = new Person();
  p2.setWeight(60);
  p2.counter++; 
  System.out.println("第" + p2.counter + "位顾客的体重是:" + p2.getWeight());
 }
}
二、构造方法
    1、构造方法是一个特殊的方法。构造方法与类同名,没有返回值。生成对象时系统会自动调用构造方法来构造对象,为对象开辟空间,并赋值。
    2、当程序员没有定义构造方法时,系统将提供一个无参的构造方法,为对象开辟空间,赋初值。

public class Person {
 private double weight;
 public static int counter;

 public Person(){
  counter++;
 }
 
 public void setWeight(double w){
  weight = w;
 }
 public double getWeight(){
  return weight;
 }
}

public class Test {
 public static void main(String[] a){
  Person p1 = new Person();
  p1.setWeight(70);
  System.out.println("第" + p1.counter + "位顾客的体重是:" + p1.getWeight());
  Person p2 = new Person();
  p2.setWeight(60);
  System.out.println("第" + p2.counter + "位顾客的体重是:" + p2.getWeight());
 }
}
    需要生成对象时就进行的操作代码,可以放在构造方法中。
    3、构造方法可以带参数。
    4、如果程序员自定义了构造方法,系统将不再提供构造方法。所以在生成对象时需调用程序员自定义的构造方法。

public class Person {
 private double weight;
 public static int counter;

 public Person(double w){
  counter++;
  weight = w;
 }
 
 public void setWeight(double w){
  weight = w;
 }
 public double getWeight(){
  return weight;
 }
}

public class Test {
 public static void main(String[] a){
  Person p1 = new Person();//错误,因为系统中没有Person()构造方法。
  p1.setWeight(70);
  System.out.println("第" + p1.counter + "位顾客的体重是:" + p1.getWeight());
 }
}
测试类可以改为

public class Test {
 public static void main(String[] a){
  Person p1 = new Person(70);
  System.out.println("第" + p1.counter + "位顾客的体重是:" + p1.getWeight());
  Person p2 = new Person(60);
  System.out.println("第" + p2.counter + "位顾客的体重是:" + p2.getWeight());
 }
}
三、两个类之间的联系
    一个类的对象做为另外一个类的一部分。
方法一:将另外一个类的对象做为另外一个类中方法的局部变量
public class Person {
 public void execute(){
  Bike b = new Bike();
  b.drive();
 }
}
public class Bike {
 public void drive(){
  System.out.println("工作ing");
 }
}
方法二、将另外一个类的对象做为另外一个类中方法的形参
public class Person {
 public void execute(Bike b){
  b.drive();
 }
}
public class Bike {
 public void drive(){
  System.out.println("工作ing");
 }
}
public class Test {
 public static void main(String[] a){
  Person p = new Person();
  Bike b = new Bike();
  p.execute(b);
 }
}
示例

public class Teacher {
 String teacherName;
 public Teacher(String tempTeacher){
  teacherName = tempTeacher;
 }
 public void execute(Student stu){
  stu.submitWork(teacherName);
 }
}
public class Student {
 String stuName;
 public Student(String tempStu){
  stuName = tempStu;
 }
 public  void submitWork(String tempTeacherName){
  System.out.println(tempTeacherName + "老师" + "要求" + stuName + "交作业");
 }
}

public class Test {
 public static void main(String[] args) {
  Teacher t = new Teacher("邓泓");
  Student stu1 = new Student("zhangsan");
  Student stu2 = new Student("张三");
  Student stu3 = new Student("李四");
  t.execute(stu1);
  t.execute(stu2);
  t.execute(stu3);
 }
}



浙ICP备06020153号-1