1/对象作为参数传递
返回1- time对应的圆的半径 和 面积
package indi.ly.oopDay06;
public class CircleDemo {
public static void main(String[] args) {
PassObject po= new PassObject();
Circle c = new Circle();
po.printAreas(c,5);
//或者用用匿名类对象替换上面2句
//po.printAreas(new Circle(),5); 如果使用匿名下面的c.radius变没法使用了
System.out.println("now radius is:"+ c.radius);
}
}
class Circle{
double radius;
public double findArea(){
return Math.PI * radius * radius;
}
public void setRadius(double r){
radius =r;
}
public double getRadius(){
return radius;
}
}
class PassObject{
public void printAreas(Circle c, int time){
int i =1;
while(i<=time){
c.setRadius(i);
System.out.println(c.radius + "\t" + c.findArea() );
i++;
}
c.setRadius(i);
}
}
2/ jdk新特性-可变个数的形参方法
- a格式:方法的形参格式 - 数据类型 ... 形参名
- b可与其他方法构成重载
- c在调用时,个数从0开始到无穷个都可以
- d使用可变多个形参的方法与方法的形参使用数组是一致
- e若方法中存在可变个数的形参,那么一定要申明在方法形参的最后
- f在一个方法中,最多申明一个可变个数形参
public class TestArgs {
public static void main(String[] args) {
TestArgs args1= new TestArgs();
//args1.prin1(new String[]{"1","2"});也可以
args1.prin1("1","2");
}
public void prin1(String ... str){
for (int i = 0; i < str.length; i++) {
System.out.println(str[i]);
}
}
}
e的错误写法public void prin1(String ... str,int i){
for (int i = 0; i < str.length; i++) {
System.out.println(str[i]);
}
}
e的正确写法public void prin1(int i,String ... str){
for (int i = 0; i < str.length; i++) {
System.out.println(str[i]);
}
}
3、方法的参数值传递机制
4、权限修饰符
5、类的构造器
/**
* 类的第三个成员 构造器 constructor (类的另外2个成员: 属性 方法)
* 构造器的作用 ①创建对象 ②初始化对象的属性
*
* 1、设计类时如果没有显示的申明构造器,程序会默认提供一个空参的构造器
* 2、一旦显式的申明了构造器,那么默认的构造器就不再提供
* 3、构造器的申明格式: 权限修饰符 类名(形参) {....} //构造器名字和类名相同
* 4、类里面可以存在多个构造器,形成构造器的重载
*/
package indi.ly.oopDay06;
public class TestPerson {
public static void main(String[] args) {
//构造1
Person p = new Person();
p.setName("zhangsan");
System.out.println(p.getName());
//构造2
Person p2 = new Person("lisi");
System.out.println(p2.getName());
//构造2
Person p3 = new Person("lisi",50);
System.out.println(p3.getName()+","+p3.getAge());
}
}
class Person{
//属性
private String name;
private int age;
//构造器 (显示的申明构造器)
public Person(){
}
public Person(String n){
name=n;
}
public Person(String n,int a){
name=n;
age=a;
}
//方法
public void setName(String n){
name=n;
}
public String getName(){
return name;
}
public void setAge(int a){
age=a;
}
public int getAge(){
return age;
}
}