package com.atguigu.java;
/**
构造器Constructor又叫构造方法
1.作用:
1)创建对象
2)对对象进行初始化:通过构造器给属性赋值更方便,但是缺点是一个对象的构造器只能调用一次
2.格式如下:
权限修饰符 类名(形参列表){
执行语句
}
3.说明:
1)如果在类中没有显示的提供构造器,那么在系统会默认提供一个空参的构造器,
创建对象的时候就是调用的这个默认的构造器。
2)如果在类中有显示的提供构造器,则不在默认提供空参构造器。
3)一个类中可以有多个构造器,并且彼此之间构成重载
*/
class Animal{
String name;
int age;
//构造器
public Animal(int a){
System.out.println("我是构造器1"+a);
}
public Animal(){
System.out.println("我是构造器2");
}
public void info(){
System.out.println("name"+name+"age"+age);
}
}
class Dog {
private String name;
private int age;
private String sex;
private int legs;
public Dog(String n,int a,String s,int l){
name = n;
age = a;
sex = s;
legs = l;
}
public void info(){
System.out.println(name +"" + age + " "+sex +" " +legs);
}
}
public class ConstructorTest {
public static void main(String[] args) {
//思考:如何调用构造器
// Animal animal = new Animal(10);
// animal.info();
System.out.println("------------------------------------");
Dog dog = new Dog("二哈",2,"公",4);
dog.info();
}
}
练习题一:
编写两个类,Triangle和TriangleTest,其中Triangle类中声明私有的底边长base和高height,同时声明公共方法访问私有变量。此外,提供类必要的构造器。另一个类中使用这些公共方法,计算三角形的面积。
package com.atguigu.exer3;
/**
* 编写两个类,Triangle和TriangleTest,其中Triangle类中声明私有
* 的底边长base和高height,同时声明公共方法访问私有变量。此外,提供类必
* 要的构造器。另一个类中使用这些公共方法,计算三角形的面积。
*/
class Triangle{
//属性
private int base;
private int height;
//构造器
public Triangle(int b,int h){
base=b;
height=h;
}
//方法:求面积
public void findArea(){
System.out.println(base*height/2);
}
public void setBase(int b){
base=b;
}
public int getBase(int b){
return base;
}
public void setHeight(int h){
height=h;
}
public int getHeight(int h){
return height;
}
}
public class TriangleTest {
public static void main(String[] args) {
Triangle triangle = new Triangle(10,5);
triangle.findArea();
}
}