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);
}
}