2022-03-07
Student类
package day0307;
/**
* 学生类
* 一个基本的学生类
* 类的语法 空的类:修饰符 class 类名{}
* 属性的语法:修饰符 数据类型(类) 属性名;
* 创建对象的语法:类名 自定义的对象名 = new 类名();
* @author Katrina
*/
public class Student {
//属性的语法:修饰符 数据类型(类) 属性名;
public String name; //姓名
public int age; //年龄
public String sex; //性别
public static void main(String[] args) {
//类名 自定义的对象名(变量) new 类名(); String str = new String("");
Student student = new Student(); //新建一个学生对象student,开辟空间存放student对象,student指向内存空间
student.name = "李阳"; //对对象的属性进行赋值
student.age = 18;
student.sex = "男";
System.out.println("学生的名字叫" + student.name);
System.out.println("学生的年龄是" + student.age);
System.out.println("学生的性别是" + student.sex);
student.eat();
student.sleep();
student.lesson();
}
/*
* 吃饭
*/
public void eat() {
System.out.println("吃泡面");
}
/*
* 睡觉
*/
public void sleep() {
System.out.println("睡10个小时");
}
/*
* 上课
*/
public void lesson() {
System.out.println("上技术课和职场课");
}
}
Teacher类
package day0307;
/**
* 教师类
* @author Katrina
*/
public class Teacher {
String name;
int age;
String sex;
String lesson;
public static void main(String[] args) {
//一般情况下,可以在类的方法中引用其他类创建对象。前提:被引用的类符合引用条件
// Student student = new Student();
// student.name = "小明";
// System.out.println("学生的名字是" + student.name);
Teacher teacher = new Teacher(); //新建一个教师对象 teacher
// teacher.name = "孙传波";
// System.out.println("老师的姓名是" + teacher.name);
// teacher.age = 30;
// System.out.println("老师的年龄是" + teacher.age);
// teacher.sex = "男";
// System.out.println("老师的性别是" + teacher.sex);
// teacher.lesson = "Java";
// System.out.println("老师授课内容是" + teacher.lesson);
// System.out.println(teacher.name + "," + teacher.age + "," + teacher.sex + "," + teacher.lesson);
// teacher.setAge(10);
int num = 25;
//对象.方法 通过传值,将实参num传递给对象teacher所引用的方法setAge的形参,在方法内完成对对象属性的赋值
// teacher.setAge(num); //对象.方法
// System.out.println(teacher.age); //25
System.out.println("xx" + teacher.name + "xx");
teacher.Teach();
}
/*
* 设置年龄的方法
*/
public void setAge(int num) {
age = num;
}
/*
* 上课的方法
*/
public void Teach() {
System.out.println("教师上课");
}
}
Cat类
package day0307;
public class Cat {
String color = "黑色";
int age = 3;
String name = "DaMao";
String sex = "女";
public static void main(String[] args) {
Cat cat = new Cat();
System.out.println("小猫的名字叫" + cat.name);
System.out.println("小猫的年龄是" + cat.age);
System.out.println("小猫的颜色是" + cat.color);
System.out.println("小猫的性别是" + cat.sex);
cat.eat();
cat.sleep();
}
/*
* 吃饭
*/
public void eat() {
System.out.println("吃鱼");
}
/*
* 睡觉
*/
public void sleep() {
System.out.println("睡觉");
}
}
2022-03-08
Student类
package day0308;
/**
* 基本类
* 1.属性:是这群对象抽象出来的类共有的特性、特征
* 属性语法:修饰符 数据类型 属性名称;
* 数据类型可以是基本数据类型(8种)、引用数据类型(String、数组、其他类)
* 2.方法语法:修饰符 返回值类型 方法名 (参数列表) {方法体}
* 返回值类型:无返回、基本数据类型、引用数据类型
* 参数列表:数据类型 参数名
* 参数可以有,也可以没有。根据方法是否需要接收一定的条件来确定
* 3.新建对象:类名 对象名 = new 类名();
* 规则:类名必须是经过声明的类:对象名可以自定义
* @author Katrina
*/
public class Student {
public String name; //属性-姓名
public int age;
public String sex;
//无参方法
public void study() {
System.out.println("学生学习");
}
//有参方法
public int older(int num) {
System.out.println("年龄是:" + num);
return ++num;
}
public static void main(String[] args) {
/**
* 1.Student student; 栈里面开辟空间,名叫student
* 2.new Student(); 堆里面开辟空间,存放一个student类的对象
* 2.=赋值 将student指向堆里面的内存空间
*/
Student student = new Student(); //新建Student类的对象student
student.age = 20; //对象属性赋值 对象.属性 (. 的)
System.out.println("学生的年龄是:" + student.age);
int newAge = student.older(student.age);
System.out.println("长大一岁后是:" + newAge);
}
}
Dog类
package day0308;
import java.util.Scanner;
public class Dog {
//姓名
String name;
//性别
String sex;
//狗龄
int age;
/*
* 改名字
*/
public void changeName(String name) {
System.out.println("改名字了,新名字叫" + name);
}
/*
* 吃
*/
public void eat() {
System.out.println("小狗吃骨头");
}
/*
* 叫
*/
public void bark(String voice) {
System.out.println("小狗的叫声是" + voice);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String voice = sc.nextLine();
Dog dog = new Dog();
// dog.changeName("小明");
// dog.changeName("黄晓明");
// dog.changeName("baby");
// dog.eat();
dog.bark(voice);
}
}
显示包列表
导包
Exercise类
package com.shaungtixi; //声明类属于那个包
//import java.util.Scanner; //导入java.util包里面的Scanner类
//import java.util.*; //通过导入所有util,来导入Scanner包
import day0308.Dog; //导包
/**
* 导包快捷键
* alt + / 或者 Ctrl + Shift + O
* @author Katrina
*
*/
public class Exercise {
public static void main(String[] args) {
Dog dog = new Dog();
// Scanner scan = new Scanner(System.in); //先导包,后直接用
// java.util.Scanner scan = new java.util.Scanner(System.in);
// java.util.Scanner scan1 = new java.util.Scanner(System.in);
double pi = Math.PI; //java.lang.*基础包不用导包
System.out.println(pi); //3.141592653589793
}
}
访问控制修饰符
day03081包
Teacher类
package day03081;
class Teacher {
/*四种属性*/
public String name; //public 公有属性,可以在任意地方使用
protected int age; //protected 受保护的属性,跨包不能使用
String teach; //默认修饰的属性 跨包不能使用
private String lesson; //private私有属性,只能在本类中使用
//同一个类能不能访问
//结果->都能够正常访问到
public static void main(String[] args) {
Teacher teacher = new Teacher();
teacher.name = "张三";
teacher.age = 30;
teacher.teach = "技术";
teacher.lesson = "Java";
}
}
Teacher2类
package day03081;
public class Teacher2 {
/*四种属性*/
public String name;
protected int age;
String teach;
private String lesson;
//同一个类能不能访问
//结果->都能够正常访问到
public static void main(String[] args) {
Teacher2 teacher = new Teacher2();
teacher.name = "张三";
teacher.age = 30;
teacher.teach = "技术";
teacher.lesson = "Java";
}
}
Student类
package day03081;
public class Student extends Teacher2 {
public static void main(String[] args) {
Teacher2 teacher = new Teacher2();
teacher.name = "张三";
teacher.age = 30;
teacher.teach = "技术";
// teacher.lesson = "Java";
Student student = new Student();
student.age = 10;
student.name = "zhangsan";
student.teach = "zhangsan"; //同一包内继承父类,子类可以正常访问 默认
}
}
Test类
package day03081;
public class Test {
//同一个包里面其他类,其他类里面引用原始类创建一个对象,看能否访问四种属性
//结果->只有private无法正常访问
public static void main(String[] args) {
Teacher teacher = new Teacher();
teacher.name = "张三";
teacher.age = 30;
teacher.teach = "技术";
// teacher.lesson = "Java"; //报错
}
}
day03082包
Student类
package day03082;
import day03081.Teacher2;
//import day03081.Teacher; //无修饰符的类,无法跨包使用
public class Student extends Teacher2 {
public static void main(String[] args) {
// Teacher teacher = new Teacher();
// teacher.name = "张三";
// teacher.age = 30;
// teacher.teach = "技术";
// teacher.lesson = "Java";
Student student = new Student();
student.age = 12;
student.name = "zhangsan"; //不同包,子类可以正常访问
// student.teach = "技术"; //报错,不同包,子类无法正常访问
// student.lesson = "Java"; //报错
}
}
Test类
package day03082;
import day03081.Teacher2;
public class Test {
//不同包下,只有public可以正常访问
public static void main(String[] args) {
Teacher2 teacher = new Teacher2();
// teacher.name = "张三";
// teacher.age = 30; //报错
// teacher.teach = "技术"; //报错
// teacher.lesson = "Java"; //报错
}
}