24H免费课程咨询  TEL:13401595960   QQ:1870218756  微信:13401595960(李老师)

东方博宜

网站首页 > 软件开发资讯 > Java开发

Java编程基础:面向对象基础(3)构造方法和成员方法

2017-06-15 15:25:23 东方博宜 阅读

7:构造方法

/*
 构造方法:
  给对象的数据进行初始化

 格式:
  A:方法名与类名相同
  B:没有返回值类型,连void都没有
  C:没有具体的返回值
*/
class Student {
 private String name; //null
 private int age; //0
 
 public Student() {
  System.out.println("这是构造方法");
 }
}

class ConstructDemo {
 public static void main(String[] args) {
  //创建对象
  Student s = new Student();
  System.out.println(s); //Student@e5bbd6
 }
}

 

/*
 我们一直在使用构造方法,但是,我们确没有定义构造方法,用的是哪里来的呢?
 
 构造方法的注意事项:
  A:如果我们没有给出构造方法,系统将自动提供一个无参构造方法。
  B:如果我们给出了构造方法,系统将不再提供默认的无参构造方法。
   注意:这个时候,如果我们还想使用无参构造方法,就必须自己给出。建议永远自己给出无参构造方法
  
 给成员变量赋值有两种方式:
  A:setXxx()
  B:构造方法
*/

class Student {
 private String name;
 private int age;

 public Student() {
  //System.out.println("我给了,你还给不");
  System.out.println("这是无参构造方法");
 }
 
 //构造方法的重载格式
 public Student(String name) {
  System.out.println("这是带一个String类型的构造方法");
  this.name = name;
 }
 
 public Student(int age) {
  System.out.println("这是带一个int类型的构造方法");
  this.age = age;
 }
 
 public Student(String name,int age) {
  System.out.println("这是一个带多个参数的构造方法");
  this.name = name;
  this.age = age;
 }
 
 public void show() {
  System.out.println(name+"---"+age);
 }
}

class ConstructDemo2 {
 public static void main(String[] args) {
  //创建对象
  Student s = new Student();
  s.show();
  System.out.println("-------------");
  
  //创建对象2
  Student s2 = new Student("林青霞");
  s2.show();
  System.out.println("-------------");
  
  //创建对象3
  Student s3 = new Student(27);
  s3.show();
  System.out.println("-------------");
  
  //创建对象4
  Student s4 = new Student("林青霞",27);
  s4.show();
 }
}


//构造方法是可以赋值的  还有就是set方法也是可以赋值的 

 //记住构造方法是没有返回值类型的 但是他是可以复制的 get和set 方法是可以复制的的 
// 在一个函数中建立这样的数据关系就是为了在另外 一个类中使用它 

8: 成员方法

/*
 标准的手机类练习
 
 手机类:
  成员变量:brand,price,color
  构造方法:无参构造
  成员方法:getXxx()/setXxx()
*/
//定义手机类
class Phone {
 //品牌
 private String brand;
 //价格
 private int price;
 //颜色
 private String color;
 
 //无参构造方法
 public Phone() {}
 public Phone(String name){
  this.name=name;
 }
 
 //getXxx()和setXxx()方法
 public String getBrand() {
  return brand;
 }
 
 public void setBrand(String brand) {
  this.brand = brand;
 }
 
 public int getPrice() {
  return price;
 }
 
 public void setPrice(int price) {
  this.price = price;
 }
 
 public String getColor() {
  return color;
 }
 
 public void setColor(String color) {
  this.color = color;
 }
}

//手机测试类
class PhoneTest {
 public static void main(String[] args) {
  //创建对象
  Phone p = new Phone();
  phone p = new Phone("nuojiya")
  
  //给成员变量赋值
  p.setBrand("诺基亚");
  p.setPrice(199);
  p.setColor("土豪金");
  
  //获取值
  System.out.println(p.getBrand()+"---"+p.getPrice()+"---"+p.getColor());
 }
}

 

/*
 类的组成:成员变量,成员方法
 今天我们又加入了一个新的成员:构造方法。
 以后再提类的组成:
  成员变量
  构造方法
  成员方法
   根据返回值:
    void类型
    非void类型
   形式参数:
    空参方法
    非空参方法
*/
class Student {
 public String getString() {
  return "helloworld";
 }

 public void show() {
  System.out.println("show");
 }
 
 public void method(String name) {
  System.out.println(name);
 }
 
 public String function(String s1,String s2) {
  return s1+s2;
 }
}

class StudentDemo {
 public static void main(String[] args) {
  //创建对象
  Student s = new Student();
  
  //调用无参无返回值方法
  s.show();
  
  //调用无参有返回值方法
  String result = s.getString();
  System.out.println(result);
  
  //调用带参无返回值的方法
  s.method("林青霞");
  
  //调用带参带返回值的方法
  String result2 = s.function("hello","world");
  System.out.println(result2);
 }
}

 

/*
 一个标准代码的最终版。
 
 学生类:
  成员变量:
   name,age
  构造方法:
   无参,带两个参
  成员方法:
   getXxx()/setXxx()
   show():输出该类的所有成员变量值
   
 给成员变量赋值:
  A:setXxx()方法
  B:构造方法
  
 输出成员变量值的方式:
  A:通过getXxx()分别获取然后拼接
  B:通过调用show()方法搞定
*/
class Student {
 //姓名
 private String name;
 //年龄
 private int age;
 
 //构造方法
 public Student() {
 }
 
 public Student(String name,int age) {
  this.name = name;
  this.age = age;
 }
 
 public String getName() {
  return name;
 }
 
 public void setName(String name) {
  this.name = name;
 }
 
 public int getAge() {
  return age;
 }
 
 public void setAge(int age) {
  this.age = age;
 }
 
 //输出所有的成员变量值
 public void show() {
  System.out.println(name+"---"+age);
 }
}

//测试类
class StudentTest {
 public static void main(String[] args) {
  //方式1给成员变量赋值
  //无参构造+setXxx()
  Student s1 = new Student();
  s1.setName("林青霞");
  s1.setAge(27);
  //输出值
  System.out.println(s1.getName()+"---"+s1.getAge());
  s1.show();
  System.out.println("----------------------------");
  
  //方式2给成员变量赋值
  Student s2 = new Student("刘意",30);
  System.out.println(s2.getName()+"---"+s2.getAge());
  s2.show();
 }
}

         图五:创建对象是内存布置

 图片.png

 

 


Powered by 东方博宜教育咨询江苏有限公司  ©2008-2017 www.czos.cn