黑马程序员-java类-java构造方法-java类数组

来源:互联网 发布:linux 打印内核 编辑:程序博客网 时间:2024/05/01 04:17
 <1.类及对象1.用PowerDesigner设计java类模块新建模块->单击进入类属性定义->设置模块名字->Attributes->Operations->选择左上角的Properties进入添加参数->parameters设置内部参数类的定义如下  class 类名称 {  属性:  方法:  }  属性与之前的变量是一样的,数据类型上就是使用java的两种数据类型,基本数据类型和引用数据类型  但是,此时在方法的定义上与之前直接使用主方法调用的时候声明不一致的是不再使用static关键字范例:新建一个person类class person{String name;int age;public void tell{System.out.println("姓名"+name+"年龄"+age+" ");}}此时就已经定义出了一个类,类中的两个属性 name,age 一个说话的方法对象的使用类名 对象名称= null;  //静态定义对象名称 =new 类名();对象名称= new 类名();//动态定义操作分为两种情况  访问属性:对象名称.属性名 =值;  访问方法:对象名称.方法()package org.demo.java;import java.util.*;public class text {private static class person{String name;int age;public void tell(){System.out.println("姓名"+name+"年龄"+age+" ");}}public static void main(String[]args){person p=new person();p.name="王琪";p.age=90;p.tell();}}范例2package org.demo.java;import java.util.*;class person{String name;int age;public void tell(){System.out.println("姓名"+name+"年龄"+age+"A");}}public class text {private static class person{String name;int age;public void tell(){System.out.println("姓名"+name+"年龄"+age+"B");}}public static void main(String[]args){person p=new person();p.name="王琪";p.age=90;p.tell();}}类的创建与实例化和数组的创建和实例化是相同的类的默认值为空2.关于类的引用传递package org.demo.java;import java.util.*;class Person{String name;int age;public void tell(){System.out.println("姓名"+name+"年龄"+age+"A");}}public class text {public static void main(String[]args){Person per1= null;Person per2= null;per1= new Person();per2= per1;per1.age=20;per2.age=30;per1.name="张三";per2.tell();}}姓名张三年龄30A  从本程序上总结  1.一个栈内存空间只能引用一个堆内存空间,但是一个堆内存空间  可以被多个栈内存空间引用。  2.在java中不用的空间称为垃圾,等待GC回收。习题:/* * 现在要求设计一个表示学生的类,要求学生里有三项成绩,计算机,数学,英语要求可以求出品均分,最高最低分品均分 ,并且可以输出一个学生的完整信息  1.属性 name,age,computer,english,math  2.所有属性必须封装  3.所有属性必须通过geter 和 seter访问  4.如果需要增加构造方法,为属性赋值  6.所有信息不能在类中输出    在类、中不能出现System.out.println();语句 *  * */ package org.demo.java;import java.util.*;class Person{String name;int age;float computer;float english;float math;public void setname(String name){this.name=name;}public void setage(int age){this.age=age;}public void setcomputer(float computer){this.computer=computer;}public void setmath(float math){this.math=math;}public void setenglish(float english){this.english=english;}public String getname(){return this.name;}public int getage(){return this.age;}public float getcomputer(){return computer;}public float  getenglish(){return english;}public float getmath(){return this.math;}public Person(String name,int age,int computer,int english,int math){this.setname(name);this.setage(age);this.setcomputer(computer);this.setenglish(english);this.setmath(math);}public float sum(){return (this.computer+this.english+this.math);}public float ave(){return (this.sum()/3);}public float max(){float max=(this.computer>this.english?this.computer:this.english);max=(max>this.math?max:this.math);return max;}public float min(){float min=(this.computer<this.english?this.computer:this.english);min=(min<this.math?min:this.math);return min;}public String toString(){return"姓名"+name+"年龄"+age+"\n\t计算机成绩"+computer+"\n\t英语成绩"+english+"\n\t数学成绩"+math;}}public class text {public static void main(String[]args){Person per1= null;Person per2= null;per1= new Person("王琪",20,60,70,35);per2= new Person("QI",20,34,46,50);System.out.println(per1);System.out.println("最高分 :" + per1.max());System.out.println("最低分" + per1.min());System.out.println("品均分" + per1.ave());System.out.println("\n"+per2);System.out.println("最高分 :" + per2.max());System.out.println("最低分" + per2.min());System.out.println("品均分" + per2.ave());}}    姓名王琪年龄20计算机成绩60.0英语成绩70.0数学成绩35.0最高分 :70.0最低分35.0品均分55.0姓名QI年龄20计算机成绩34.0英语成绩46.0数学成绩50.0最高分 :50.0最低分34.0品均分43.3333323.总结  1.类是对象的模板,对象是类的实例  2.垃圾的产生  3.对象的产生格式    .声明对象:类名称 对象名称 = null; 如果直接使用此对象,会出现控指向异常。    .实例化对象:对象名称 = new 类名称(),//开辟对堆存空间,才可以直接4.封装型 :private 以及 seter getter5.构造方法: .与类名称相同的方法 .无返回值类型 .如果一个类中没有明确的声明一个构造方法,则会自动生成一个无参的构造方法 .构造方法允许重载4.对象的比较package org.demo.java;import java.util.*;class Person{private String name;private int age;public Person(String name,int age){this.name=name;this.age=age;}public void setname(String name){this.name=name;}public void setage(int age){this.age=age;}public String getname(){return this.name;}public int getage(){return this.age;}public boolean compare(Person per){if(this==per)return true;else if(this.name.equals(per.name) && this.age==per.age)return true;else return false;}}public class text {public static void main(String[]args){Person per1= null;Person per2= null;per1=new Person("王琪",30);per2=new Person("王琪",30);if(per1.compare(per2)){System.out.println("是同一个人");}else{System.out.println("不是同一个人");}}}是同一个人this--当前调用方法的对象,即当前对象5.对象数组package org.demo.java;import java.util.*;class Person{        private String name;        private int age;        public Person(){};        public Person(String name,int age){                this.name=name;                this.age=age;        }        public void setname(String name){                this.name=name;        }        public void setage(int age){                this.age=age;        }        public String getname(){                return this.name;        }        public int getage(){                return this.age;        }        public boolean compare(Person per){                if(this==per)return true;                else if(this.name.equals(per.name) && this.age==per.age)return true;                else return false;        }        public String toString(){                return"姓名"+name+"年龄"+age;        }}public class text {        public static void main(String[]args){                Person person[]=null;                person=new Person[3];                int i=0;                for(Person x : person){                        x=new Person(new String("wangqi"+i++),(30+i));                }                for(Person a:person){                        System.out.println(a);                                }for(i=0;i<person.length;i++){                        person[i]=new Person(new String("wangqi"+i),(30+i));                }                                for(Person a:person){                        System.out.println(a);                                }              }}结果为什么不用?nullnullnull姓名wangqi0年龄31姓名wangqi1年龄32 姓名wangqi2年龄33 

0 0
原创粉丝点击