JAVA–2018-8-21 类定义,类方法,对象

package come.southwind.test;


public class Teacher {
     //属性:描述静态特征
     public string name;
     public int age;
     public char gender;
     //方法:描述动态功能
     public void teach() {
         system.out.println("老师上了一节课");
     }
     public string level(int score) {

        /**
             * score>=90:优秀
             *80<=score<90:良好
             *60<=score<80:中等
             *score<60:差
         */
         String result = "";
         if(score>=90){
             result = "优秀";
         }else {
             if(score>=80){
                 result = "良好";
             }else{
                 if(score>=60) {
                     result = "中等";
                 }else{
                     result = "差";
                 }
             }
         }
     }
}


新建类,开始引用teacher 方法
每一个类都有一个默认的无参函数。

pacakge come.southwind.test;

public clase Test{
     public static void main(String[] args){
     //创建teacher对象
     Teacher teacher = new Teacher();
     System.out.println(teacher);   /堆栈内存的地址
     Teacher teacher2 = new Teacher();
     System.out.println(teacher2);   /堆栈内存的地址
     }
}


类是静态的,写完之后就存在于硬盘中
对象是动态的,随着程序的运行而创建,同时随着程序的关闭而销毁

JVM中类只有一份,对象有多份。

类的静态特征通过属性来描述
类的动态功能通过方法来描述

null指空指针,内存地址的一个值,指空,不存在。

垃圾会有机制 GC: 是一个独立的巡查线程, GC 是一个定时任务。隔一段时间执行一次。

GC, Main

应用类型的变量尅赋值null
基本数据类型的变量不能赋值null;

基本数据在栈内存中开辟空间,同时直接将具体数值保存在栈章

引用类型在栈中开辟空间,同时在堆中创建队形,将堆内内存的地址保存在栈中

虽然属性和方法是类中定义的
但是如果需要访问属性或者调用方法,必须通过对象来完成,不能通过类来完成

方法调用需要注意的事项:

参数的数据类型,顺序必须与类中方法定义时的列表一致


基本数据类型传递是变量的值,在方法内部改变变量的值
并不会影响到外部调用该方法时传入的变量值


引用数据类型传递是地址

一个景区根据游人的年龄收取不同价格的门票;
编写游人类,根据年龄段决定门票价格并输出。



创建一个类

第一个类
package come.southwind.test;

public class Person{
     public String name;
     public int age;
     public Person
}

第二个类
package come.southwind.test;

public class Admin{
     public int getPrice(){
         int price = 0;
         if(age >= 18){
             price = 20;
         }
         return price;
     }
}

创建场景
package come.southwind.test;
import java.util.Scanner;


public class Test2 {
     public static void main(String[] args){
         Scanner scanner = new Scanner(System.in);
         System.out.print("请输入游客姓名:");
         String name = scanner.netx();
         System.out.print("请输入游客年龄:");
         int age = scanner.nextInt();
         Person person = new Person(name,age);
         Admin admin = new Admin();
         int price = admin.getPrice(person.age);
         if(price == 0){
         System.out.println("游客"+person.name+"的年龄是"+person.age+",门票免费");
         }else {
         System.out.println("游客"+person.name+"的年龄是"+person.age+",应该收取的门票价格是"+price);
         }

    }
}


5位学员参加了JAVA知识竞赛,输出竞赛的平均成绩和最高成绩,定义一个工具类来完成。
相同数据变量出现是,利用数组类型来代替。


package come.southwind.test;

public class ScoreTools{
     public void result(int[] array){
         //1.求平均分
             int sum = 0;
             for(int score:array){
                 sum+=score;
             }
             float avg = sum/array.lenth;
         //2.求最高分
         int max = array[0];
         for(int i = 1;i<array.lenght;i++){
             int score
         }


        for(int score:array){
                 if(score > max){
                 max = score;
                 }
             }


     }
}


测试类


package com.southwind.test;

public calls Test3 {
     public static void main(String[] args){
         int[]  array = {70,50,80,90,100};
         int[]  array = {66,77,88,99,73,84};
         ScoreTools st = new ScoreTools();
         st.result(array);
         st.result(array2);
     }

}

posted @ 2018-08-21 22:09  muchi  阅读(213)  评论(0编辑  收藏  举报