factory查看年龄

<title></title>
<script type="text/javascript" src="../../angular/angular.js" ></script>
<script>
var a = 20;

var app = angular.module("myApp",[]);
app.controller("myCtrl",function($scope,$myFactory){
$scope.name = $myFactory.name;
//$scope.age = $myFactory.age;
$scope.newAge;

$scope.fun = function(){
$myFactory.setAge($scope.newAge);
$scope.age = $myFactory.getAge();
}
});

//通过调用factory函数自定义服务
/*app.factory("$myFactory",function(){
var student = {};
student.age = a;
student.name = "张三";
return student;
});*/

//通过调用factory函数自定义服务
app.factory("$myFactory",function(){
var student = {};//创建一个空对象,返回这个对象
var age;//定义随便一个私有变量
//给student对象设置方法,这个方法可以直接被student对象调用。
//通过操作这个方法,操作私有化变量。
student.setAge = function(newAge){
age = newAge;
}
student.getAge = function(){
return age;
}
student.name = "张三";//直接给对象属性赋值,赋好的值,可以直接通过对象名.属性名获取。
return student;
});

</script>
</head>
<body ng-app="myApp" ng-controller="myCtrl">
<input type="number"  ng-model="newAge"/>
<button ng-click="fun()">点击查看年龄</button>
{{name +":"+age}}
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我理解了你的要求。以下是我编写的代码: ``` // Animal类 public abstract class Animal { protected String name; protected int age; public Animal(String name, int age) { this.name = name; this.age = age; } public abstract void info(); public abstract void speak(); } // Dog类 public class Dog extends Animal { private int violence; public Dog(String name, int age, int violence) { super(name, age); this.violence = violence; } @Override public void info() { System.out.println("该狗的名字是" + name + ",年龄是" + age + "岁,凶猛程度是" + violence + "度"); } @Override public void speak() { System.out.println("旺旺"); } } // Cat类 public class Cat extends Animal { private int mousingAbility; public Cat(String name, int age, int mousingAbility) { super(name, age); this.mousingAbility = mousingAbility; } @Override public void info() { System.out.println("该猫的名字是" + name + ",年龄是" + age + "岁,捕鼠能力是" + mousingAbility + "分"); } @Override public void speak() { System.out.println("喵喵"); } } // Factory类 public class Factory { public Animal getAnimalByType(int type, String name, int age, int ownAttribute) { if (type == 1) { return new Dog(name, age, ownAttribute); } else if (type == 2) { return new Cat(name, age, ownAttribute); } else { return null; } } } ``` 这个工厂类可以根据传入的类型参数,动态创建出对应的子类对象。你只需要调用`getAnimalByType`方法,传入相应的参数即可。 例如,如果要创建一个名为"Mike"、年龄为2岁、凶猛程度为78度的Dog对象,可以这样调用: ``` Factory factory = new Factory(); Animal animal = factory.getAnimalByType(1, "Mike", 2, 78); animal.info(); // 该狗的名字是Mike,年龄是2岁,凶猛程度是78度 animal.speak(); // 旺旺 ``` 同样地,如果要创建一个名为"Kitty"、年龄为4岁、捕鼠能力为88分的Cat对象,可以这样调用: ``` Factory factory = new Factory(); Animal animal = factory.getAnimalByType(2, "Kitty", 4, 88); animal.info(); // 该猫的名字是Kitty,年龄是4岁,捕鼠能力是88分 animal.speak(); // 喵喵 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值